当前位置: 首页 > news >正文

iOS中使用AWS上传zip文件到Minio上的oss平台上

1. 集成AWS相关库(千万不要用最新的版本,否则会出现风格化虚拟路径,找不到主机名)

pod 'AWSS3', '~> 2.10.0'
pod 'AWSCore', '~> 2.10.0'

2. 编写集成的相关代码

- (void)uploadFileToMinIO {NSString *endPoint = @"http://192.168.1.31:9000";        // 有的需要加端口,有的不需要NSString *accessKey = @"FDX7fP3XbXXCvwbAQfefUzOiGf";    //  minio后台申请的NSString *secretKey = @"QrtJww9vcEy383126ZRX4LxxSNo2iC03yy5lbnJQnTcA"; //  minio后台申请的NSString *bucketName = @"桶名"; // 从minio后台创建AWSEndpoint *endpoint = [[AWSEndpoint alloc] initWithRegion:AWSRegionUSEast1service:AWSServiceS3URL:[NSURL URLWithString:endPoint]];NSLog(@"czf007: requestURL: %@", endpoint.URL.absoluteString);AWSStaticCredentialsProvider *credentialsProvider =[[AWSStaticCredentialsProvider alloc] initWithAccessKey:accessKeysecretKey:secretKey];AWSServiceConfiguration *configuration =[[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1endpoint:endpointcredentialsProvider:credentialsProvider];//    [AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;    // 这个不能设置,会导致走虚拟化路径,使用下面的方式即可[AWSS3 registerS3WithConfiguration:configuration forKey:@"MinIO"];AWSS3PutObjectRequest *putRequest = [AWSS3PutObjectRequest new];putRequest.bucket = bucketName;putRequest.key = @"yourfile.zip";putRequest.body = [NSURL fileURLWithPath:@"/work/redsocks.zip"];putRequest.contentType = @"application/zip";// 设置 contentLength,防止 ExcessData 错误NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:@"/work/redsocks.zip" error:nil];NSNumber *fileSizeNumber = [attrs objectForKey:NSFileSize];putRequest.contentLength = fileSizeNumber;NSLog(@"czf007: uploading file with size: %@", fileSizeNumber);[[AWSS3 S3ForKey:@"MinIO"] putObject:putRequestcompletionHandler:^(AWSS3PutObjectOutput * _Nullable response, NSError * _Nullable error) {if (error) {NSLog(@"czf007:upload failed: %@", error);} else {NSLog(@"czf007:upload success!");}}];}

3. 查看日志

4. 在Minio后台查看文件是否上传成功

http://www.xdnf.cn/news/57961.html

相关文章:

  • nvidia physx
  • C# 封装教程
  • MCP实践第一步--磕磕碰碰搭环境
  • TensorFlow中使用Keras
  • Spring如何通过XML注册Bean
  • C++23 让 Lambda 表达式中的 () 更可选:P1102R2 提案深度解析
  • Apache RocketMQ 荣获 2024 开源创新榜单“年度开源项目
  • 【网络安全】OWASP 十大漏洞
  • 大数据组件学习之--Kafka 安装搭建
  • 机器人进阶---视觉算法(五)仿射变换和投影变换有什么区别
  • 国产AI新突破!全球首款无限时长电影生成模型SkyReels-V2开源:AI视频进入长镜头时代!
  • LangChain + 文档处理:构建智能文档问答系统 RAG 的实战指南
  • 微服务划分的思考
  • 量子计算在金融领域的应用与展望
  • Unity接入安卓SDK(3)厘清Gradle的版本
  • AI助理iOS开发:Copilot for Xcode 下载与安装全指南
  • Java 自动装箱与拆箱:基本数据类型与包装类的转换
  • Ansys electronics安装多版本simulink打开s-function冲突解决方法
  • 用Mac M4构建多架构Docker镜像指南
  • CSS 中实现 div 居中有以下几种常用方法
  • 解决Chrome浏览器访问https提示“您的连接不是私密连接”的问题
  • Android 15强制edge-to-edge全面屏体验
  • (7)NodeJS的使用与NPM包管理器
  • 1.2软考系统架构设计师:系统架构的定义与作用 - 练习题附答案及超详细解析
  • 23种设计模式-结构型模式之外观模式(Java版本)
  • Spark和Hadoop的区别和联系
  • 深入理解 DML 和 DQL:SQL 数据操作与查询全解析
  • Java BIO、NIO、AIO、Netty面试题(已整理全套PDF版本)
  • 【NVIDIA】Isaac Sim 4.5.0 加载 Franka 机械臂
  • CMake execute_process用法详解