如何设置 Info.Plist 以获取 AWSS3TransferManager.default 工作



我在尝试从 AWSS3TransferManager 获取默认值时收到错误。它说

"NSInternalInconsistencyException",原因:"服务配置nil 。在使用此方法之前,您需要配置Info.plist或设置defaultServiceConfiguration

这是我的代码

func downloadFromS3() {
    var downloadCount = 0
    for index in 0...2 {
        let  downloadingFilePath = NSTemporaryDirectory().appendingFormat("banner%d.jpg", index+1)
        let downloadingFileURL = NSURL.fileURL(withPath: downloadingFilePath)
        let transferManager = AWSS3TransferManager.default()
        let downloadRequest = AWSS3TransferManagerDownloadRequest()
        downloadRequest?.bucket = BPAWSBannerBucketName
        downloadRequest?.key = String(format: "banner%d.jpg",index+1)
        downloadRequest?.downloadingFileURL = downloadingFileURL
        print("started download process")
        let task = transferManager.download(downloadRequest!)
        task.continueWith (block: {
            (task) -> AnyObject! in
            if task.error != nil {
                print("Error: (String(describing: task.error))")
            } else {
                print("Download successful")
                let image = UIImage(contentsOfFile: downloadingFilePath)
                self.bannerImageArr?.add(image!)
                downloadCount += 1
                if downloadCount == 3 {
                    DispatchQueue.main.async {
                        self.bannerCollectionView.reloadData()
                    }
                }
            }
            return nil
        }
        )
    }
}
您需要

application:didFinishLaunchingWithOptions:应用程序委托方法中设置 defaultServiceConfiguration。

let credentialProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId: "YourIdentityPoolId")
let configuration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: credentialProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration

最新更新