首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Swift中的亚马逊网络服务S3下载请求

从Swift中的亚马逊网络服务S3下载请求
EN

Stack Overflow用户
提问于 2016-01-12 21:10:40
回答 1查看 1.9K关注 0票数 0

我正在尝试使用Swift 2将文件从亚马逊网络服务S3下载到我的应用程序中。我已在函数中添加了创建下载请求。

代码语言:javascript
运行
复制
 func checkS3Download(){
    // create download request
    let downloadFilePath = (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("item")
    let downloadingFileURL = NSURL(fileURLWithPath:downloadFilePath)
    let downloadRequest: AWSS3TransferManagerDownloadRequest = AWSS3TransferManagerDownloadRequest()
    downloadRequest.bucket = "bucketname"
    downloadRequest.key = "item"
    downloadRequest.downloadingFileURL = downloadingFileURL

我遇到了下面的代码问题:试图让服务器下载到我的应用程序上。

代码语言:javascript
运行
复制
      let transferManager.download(downloadRequest).continueWithExecutor(AWSExecutor.mainThreadExecutor(), withBlock: {(task: AWSTask) -> AnyObject in

        if task.error {
            if (task.error.domain == AWSS3TransferManagerErrorDomain) {
                switch task.error.code {
                case AWSS3TransferManagerErrorCancelled, AWSS3TransferManagerErrorPaused:
                    break
                default:
                    NSLog("Error: %@", task.error)
                }
            }
            else {
                // Unknown error.
                NSLog("Error: %@", task.error)
            }
        }
        if task.result {
            var downloadOutput: AWSS3TransferManagerDownloadOutput = task.result
            //File downloaded successfully.
        }
        return nil
    })

}

如果有人能帮助我了解如何修复我的问题,以便在我的应用程序上下载,我将非常感激。

EN

回答 1

Stack Overflow用户

发布于 2016-01-15 00:11:03

如果您收到了该消息,则应用程序代码可能正在工作。这是一个亚马逊网络服务的错误,与S3存储桶权限相关。

请确保您的S3存储桶具有正确的权限。正确的存储桶策略如下所示:

代码语言:javascript
运行
复制
{
   "Statement": [
    {
      "Sid": "Stmt1350703615347",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::bucketname/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": ["arn:aws:s3:::bucketname"],
      "Condition": {}
    }
  ]
}

第一个块将get (download) S3权限授予存储桶中的所有对象。第二个块授予存储桶本身的list权限。

您应该通过检查属性选项卡下的S3存储桶属性,然后单击编辑存储桶策略来更新策略。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34744620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档