Swift 3将文件上传到Amazon S3

我想分享一个简单的教程,介绍如何使用Swift 3将文件上传到iOS中的 Amazon S3 。 我们走吧。

  1. 我们需要将Amazon S3框架添加到您的项目中。 在此示例中,我将通过帮助Cocoapods来完成此任务

2.创建一个Podfile

 平台:ios,“ 8.0” 
hibit_all_warnings!
use_frameworks!
 目标'AmazonS3Upload'做 
吊舱“ AWSS3”
结束

3.从终端运行下一个命令:

 吊舱安装 

4.打开生成的工作区。 之后,我们可以使用Pods的框架来实现文件的上传。

5.我们需要导入2个模块:

 导入AWSS3 
导入AWSCore

6.使用您的凭证设置AWS配置。 例如:

 让accessKey =“ ...” 
让secretKey =“ ...”
 让凭据提供者= AWSStaticCredentialsProvider(accessKey:accessKey,secretKey:secretKey) 
 让配置= AWSServiceConfiguration(区域:AWSRegionType.usEast1,凭据提供商:凭据提供商) 
  AWSServiceManager.default()。defaultServiceConfiguration =配置 

7.创建一个上传请求:

 让url = ...文件的URL ... 
let remoteName =“上传文件的名称”
让S3BucketName =“您在Amazon S3上的存储桶的名称”
 让uploadRequest = AWSS3TransferManagerUploadRequest()! 
uploadRequest.body =网址
uploadRequest.key = remoteName
uploadRequest.bucket = S3BucketName
uploadRequest.contentType =“图像/ JPEG”
uploadRequest.acl = .publicRead

8.并使用AWSS3TransferManager上载。

 让transferManager = AWSS3TransferManager.default() 
transferManager?.upload(uploadRequest).continue({(任务:AWSTask )->任何?
如果让错误= task.error {
print(“上传失败,错误:(\(error.localizedDescription))”)
}
 如果让exception = task.exception { 
print(“上传失败,出现异常(\(exception))”)
}
 如果task.result!= nil { 
让url = AWSS3.default()。configuration.endpoint.url
让publicURL = url?.appendingPathComponent(uploadRequest.bucket!)。appendingPathComponent(uploadRequest.key!)
  print(“上传到:\(publicURL)”) 
}
 返回零 
})

就这样。 完整的示例可以在这里找到。