美文网首页
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