美文网首页
iOS OC项目接入AWS S3

iOS OC项目接入AWS S3

作者: 没脑子的程序员 | 来源:发表于2024-07-31 22:31 被阅读0次

1. 导入 AWSS3 的 pod 库

搜索 AWSS3 的 iOS sdk 库
$ pod search AWSS3

pod search AWSS3

在项目的Podfile文件中添加 AWSS3,由于依赖,会同时导入 AWSCore库
pod 'AWSS3', '~> 2.36.6'

ps:纯 OC 的项目过程中可能遇到对swift的要求,可以在项目中创建一个 swift,并接受创建 Bridging-Hearder.h文件,这个文件还会有你的项目名字,然后在 build setting 中奖 Swift Language Version 设置为 Swift 5 就可以。

2. 上传功能实现过程

2.1 配置Credentials

引入头文件
@import AWSS3;

//配置Credentials 以及 ServiceConfiguration
AWSStaticCredentialsProvider *credentials = [[AWSStaticCredentialsProvider alloc] initWithAccessKey:@"Your-AccessKey" secretKey:@"Your-secretKey"];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionAPEast1 credentialsProvider:credentials];
        
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;

上面的代码里有 3 个参数,Your-AccessKey,Your-secretKey,Region
Region 你可以查看自己 bucket 是在那个区域的,然后在 AWSRegionType 中寻找对应区域的 type 就可以了,比如香港就是AWSRegionAPEast1

Your-AccessKey和Your-secretKey: 是 IAM 中用户的访问密钥信息,获取方式如下:

首先需要在IAM 服务中创建一个用户,创建过程很简单,这里就不贴图了。
第二部是为用户设置 Accesskey,点击下图中红色框区域,创建步骤如后续图片,最后一步获得密钥后记得保存,后续无法再次查看


IAM 用户界面 使用案例选择 设置标签 密钥

此处获得的访问密钥就是Your-AccessKey,而秘密访问密钥就是Your-secretKey。

2.2 上传功能实现

AWSS3TransferUtilityUploadExpression *expression = [AWSS3TransferUtilityUploadExpression new];
expression.progressBlock = ^(AWSS3TransferUtilityTask *task, NSProgress *progress) {
    dispatch_async(dispatch_get_main_queue(), ^{
           // 更新进度UI
           NSLog(@"Upload Progress: %f", progress.fractionCompleted);
    });
};
    
AWSS3TransferUtility *transferUtility = [AWSS3TransferUtility defaultS3TransferUtility];
    
[transferUtility uploadFile:fileURL bucket:@"Your-Bucket-Name" key:@"Your-File-Name" contentType:@"Your-File-Type" expression:expression completionHandler:^(AWSS3TransferUtilityUploadTask * _Nonnull task, NSError * _Nullable error) {
        
}];

代码中有imageURL,Your-Bucket-Name,Your-File-Name和Your-File-Type
fileURL就是文件的 URL,如果是相册获取的图片的话就是NSURL *imageURL = [info objectForKey:UIImagePickerControllerImageURL];
Your-Bucket-Name就是你 bucket 的名字,就是在 bucket 列表中的名字
Your-File-Name就是文件保存在服务器上使用的名字
Your-File-Type就是文件类型,图片对应就是image/png, 其他类型可以自行搜索。

到此,AWSS3 的上传功能就完成了,有问题欢迎大家留言。

相关文章

网友评论

      本文标题:iOS OC项目接入AWS S3

      本文链接:https://www.haomeiwen.com/subject/yeonhjtx.html