【问题标题】:Unable to download from subfolder of a bucket using AWS S3 iOS SDK无法使用 AWS S3 iOS 开发工具包从存储桶的子文件夹下载
【发布时间】:2020-01-24 00:12:59
【问题描述】:

使用 AWS S3 SDK(通过 Cocoapods)v2.8.0,但我无法从存储桶的子文件夹中下载图像。该代码适用于在存储桶的根目录中下载

    func downloadData(imageName: String, completion: @escaping (Bool) -> () ) {
        let expression = AWSS3TransferUtilityDownloadExpression()
        expression.progressBlock = {(task, progress) in DispatchQueue.main.async(execute: {
            print("Download in process: \(progress.fractionCompleted*100)% complete")
        })
        }
        var completionHandler: AWSS3TransferUtilityDownloadCompletionHandlerBlock?
        completionHandler = { (task, URL, data, error) -> Void in
            DispatchQueue.main.async(execute: {
                if let error = error?.localizedDescription {
                    print("Error in completion of download: \(error)")
                }
                print("Completion Response: \(task.response)")
                if let responseData = data {
                    if let image = UIImage.init(data: responseData) {
                        self.saveImage(imageName: imageName, image: image)
                        completion(true)
                    }
                }
                completion(false)
            })
        }
        transferUtility.downloadData(
            fromBucket: "myBucketName",
            key: "mySubFolder/" + imageName,
            expression: expression,
            completionHandler: completionHandler
            ).continueWith {
                (task) -> AnyObject? in if let error = task.error {
                    print("Error: \(error.localizedDescription)")
                }
                if let _ = task.result {
                }
                return nil;
        }
    }

我收到带有上述代码的 404 和以下错误。

Error in completion of download: The operation couldn’t be completed. (com.amazonaws.AWSS3TransferUtilityErrorDomain error 2.)

【问题讨论】:

    标签: ios swift amazon-s3 aws-sdk


    【解决方案1】:

    已解决:上面的代码是正确的,但我在密钥中省略了文件扩展名。在根文件夹中,它似乎并不繁琐,因此会接受“ImageName”或“ImageName.jpg”,但在添加子文件夹时不喜欢这样,只接受“SubFolder/ImageName.jpg”。

    添加文件扩展名解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 2021-12-04
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 2017-02-16
      • 2021-05-23
      相关资源
      最近更新 更多