iOS OC項(xiàng)目接入AWS S3

1. 導(dǎo)入 AWSS3 的 pod 庫(kù)

搜索 AWSS3 的 iOS sdk 庫(kù)
$ pod search AWSS3

pod search AWSS3

在項(xiàng)目的Podfile文件中添加 AWSS3,由于依賴,會(huì)同時(shí)導(dǎo)入 AWSCore庫(kù)
pod 'AWSS3', '~> 2.36.6'

ps:純 OC 的項(xiàng)目過(guò)程中可能遇到對(duì)swift的要求,可以在項(xiàng)目中創(chuàng)建一個(gè) swift,并接受創(chuàng)建 Bridging-Hearder.h文件,這個(gè)文件還會(huì)有你的項(xiàng)目名字,然后在 build setting 中獎(jiǎng) Swift Language Version 設(shè)置為 Swift 5 就可以。

2. 上傳功能實(shí)現(xiàn)過(guò)程

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 個(gè)參數(shù),Your-AccessKey,Your-secretKey,Region
Region 你可以查看自己 bucket 是在那個(gè)區(qū)域的,然后在 AWSRegionType 中尋找對(duì)應(yīng)區(qū)域的 type 就可以了,比如香港就是AWSRegionAPEast1

Your-AccessKey和Your-secretKey: 是 IAM 中用戶的訪問(wèn)密鑰信息,獲取方式如下:

首先需要在IAM 服務(wù)中創(chuàng)建一個(gè)用戶,創(chuàng)建過(guò)程很簡(jiǎn)單,這里就不貼圖了。
第二部是為用戶設(shè)置 Accesskey,點(diǎn)擊下圖中紅色框區(qū)域,創(chuàng)建步驟如后續(xù)圖片,最后一步獲得密鑰后記得保存,后續(xù)無(wú)法再次查看


IAM 用戶界面
使用案例選擇
設(shè)置標(biāo)簽
密鑰

此處獲得的訪問(wèn)密鑰就是Your-AccessKey,而秘密訪問(wèn)密鑰就是Your-secretKey。

2.2 上傳功能實(shí)現(xiàn)

AWSS3TransferUtilityUploadExpression *expression = [AWSS3TransferUtilityUploadExpression new];
expression.progressBlock = ^(AWSS3TransferUtilityTask *task, NSProgress *progress) {
    dispatch_async(dispatch_get_main_queue(), ^{
           // 更新進(jìn)度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,如果是相冊(cè)獲取的圖片的話就是NSURL *imageURL = [info objectForKey:UIImagePickerControllerImageURL];
Your-Bucket-Name就是你 bucket 的名字,就是在 bucket 列表中的名字
Your-File-Name就是文件保存在服務(wù)器上使用的名字
Your-File-Type就是文件類(lèi)型,圖片對(duì)應(yīng)就是image/png, 其他類(lèi)型可以自行搜索。

到此,AWSS3 的上傳功能就完成了,有問(wèn)題歡迎大家留言。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容