1. 導(dǎo)入 AWSS3 的 pod 庫
搜索 AWSS3 的 iOS sdk 庫
$ pod search AWSS3

在項目的Podfile文件中添加 AWSS3,由于依賴,會同時導(dǎo)入 AWSCore庫
pod 'AWSS3', '~> 2.36.6'
ps:純 OC 的項目過程中可能遇到對swift的要求,可以在項目中創(chuàng)建一個 swift,并接受創(chuàng)建 Bridging-Hearder.h文件,這個文件還會有你的項目名字,然后在 build setting 中獎 Swift Language Version 設(shè)置為 Swift 5 就可以。
2. 上傳功能實現(xiàn)過程
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 個參數(shù),Your-AccessKey,Your-secretKey,Region
Region 你可以查看自己 bucket 是在那個區(qū)域的,然后在 AWSRegionType 中尋找對應(yīng)區(qū)域的 type 就可以了,比如香港就是AWSRegionAPEast1
Your-AccessKey和Your-secretKey: 是 IAM 中用戶的訪問密鑰信息,獲取方式如下:
首先需要在IAM 服務(wù)中創(chuàng)建一個用戶,創(chuàng)建過程很簡單,這里就不貼圖了。
第二部是為用戶設(shè)置 Accesskey,點擊下圖中紅色框區(qū)域,創(chuàng)建步驟如后續(xù)圖片,最后一步獲得密鑰后記得保存,后續(xù)無法再次查看




此處獲得的訪問密鑰就是Your-AccessKey,而秘密訪問密鑰就是Your-secretKey。
2.2 上傳功能實現(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,如果是相冊獲取的圖片的話就是NSURL *imageURL = [info objectForKey:UIImagePickerControllerImageURL];
Your-Bucket-Name就是你 bucket 的名字,就是在 bucket 列表中的名字
Your-File-Name就是文件保存在服務(wù)器上使用的名字
Your-File-Type就是文件類型,圖片對應(yīng)就是image/png, 其他類型可以自行搜索。
到此,AWSS3 的上傳功能就完成了,有問題歡迎大家留言。