【问题标题】:What does AWSS3TransferManagerErrorCancelled mean and how to get rid of it?AWSS3TransferManagerErrorCancelled 是什么意思以及如何摆脱它?
【发布时间】:2015-02-02 14:00:10
【问题描述】:

我最近尝试学习如何使用 Amazon AWS iOS SDK,因为我想将一些文件放在允许应用程序用户下载的服务器上。

我已经下载了亚马逊提供的samples 并研究了它们: https://github.com/awslabs/aws-sdk-ios-samples/tree/master/S3TransferManager-Sample/Objective-C

在我尝试从存储桶下载图像之前,将文件上传到我的 S3 存储桶的过程非常顺利。

我追踪了代码,发现问题出在哪里。

[[transferManager download:self.downloadRequest1] continueWithExecutor:[BFExecutor mainThreadExecutor] withBlock:^id(BFTask *task) {
    if (task.error != nil){
        if(task.error.code != AWSS3TransferManagerErrorCancelled && task.error.code != AWSS3TransferManagerErrorPaused){
            NSLog(@"%s Error: [%@]",__PRETTY_FUNCTION__, task.error);
            self.downloadStatusLabel.text = StatusLabelFailed;
        }
    } else {
        self.downloadRequest1 = nil;
        downloadCount++;
        if(3 == downloadCount){
            self.downloadStatusLabel.text = StatusLabelCompleted;
        }
    }
    return nil;
}];

我打印了 task.error.code 的值,发现它是1 (AWSS3TransferManagerErrorCancelled)。 由于没有AWSS3TransferManagerErrorCancelled的异常处理,所以程序不显示错误信息,下载文件失败。

我试图找出AWSS3TransferManagerErrorCancelled 的含义,但没有运气。

有谁知道为什么错误代码 = 1 (AWSS3TransferManagerErrorCancelled) 以及如何解决?考虑到这是亚马逊提供的教程,我相信我一定会错过一些非常简单的东西。

【问题讨论】:

    标签: ios objective-c amazon-web-services amazon-s3 amazon-cognito


    【解决方案1】:

    经过一番研究,终于发现是权限问题。

    因此,当我创建身份池时,系统会询问您是否要启用对未经身份验证的身份的访问。 如果您启用此选项,AWS 将为您提供一个以 Unauth_DefaultRole 为后缀的默认未经身份验证的身份。 问题是 AWS 不会自动授予该身份“获取”权限。 还是需要将此 Action 添加到 xxxUnauth_DefaultRole 的策略中。

    所以,这是我修改后的政策,允许未经身份验证的用户从我的存储桶下载文件。

    {
    "Version": "2012-10-17",
    "Statement": [{
        "Action": [
            "mobileanalytics:PutEvents",
            "cognito-sync:*",
            "s3:ListBucket",
            "s3:Get*"
        ],
        "Effect": "Allow",
        "Resource": [
            "*"
        ]
    }]
    }
    

    希望这可以帮助刚接触 AWS 的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 2022-08-18
      • 1970-01-01
      • 2021-04-03
      • 2021-10-20
      • 2013-08-19
      • 1970-01-01
      相关资源
      最近更新 更多