当前位置: 首页 > 知识库问答 >
问题:

如何使用iOS将文件上传到AmazonS3并获得响应的url

南门峰
2023-03-14
AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];
    AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new];
    uploadRequest.bucket = S3BucketName;
    uploadRequest.key = S3UploadKeyName;
    uploadRequest.body = self.uploadFileURL;
    //uploadRequest.contentLength = [NSNumber numberWithUnsignedLongLong:fileSize];

    [[transferManager upload:uploadRequest] continueWithBlock:^id(BFTask *task) {
        // Do something with the response
        AWSS3TransferManagerUploadOutput *uploadOutPut = task.result;
        NSLog(@"bftask:%@",uploadOutPut); // Upload out put gives me the following response
        return nil;
    }];

bfTask响应:

bftask:<AWSS3TransferManagerUploadOutput: 0x1706606c0> {
    ETag = "\"0aefedfa36b687a74025b1ad50f3101f\"";
    serverSideEncryption = 0;
}

共有1个答案

唐骏祥
2023-03-14

如果只需要下载文件,可以使用AWSS3TransferManagerDownloadRequest下载使用SDK的文件。或者,您可以使用awss3presignedurlbuilder生成预签名的URL来下载文件。

如果只想知道对象的URL,URL遵循以下模式:

https://<YourS3Endpoint>/<YourBucketName>/<YourObjectKeyName>

默认情况下,AmazonS3中的任何对象都是私有的,不可公开读取。如果要使其可公开阅读,则需要在AWSS3TransferManagerUploadRequest对象上设置ACL

 类似资料:
  • 我们目前有一个小的web应用程序,其中一部分是文件上传。目前,我们在客户端上使用Plupload,并启用了分块功能,以允许上传大型文件。这些文件被保存在应用服务器上,当它们出现时,这些块被追加。 现在,我们正在使用AmazonS3来存储文件,并有可能使用多个应用服务器。我发现很难处理这些大块。我试着以他们为榜样,但我遇到了问题。我尝试的主要内容是这样的: 我的问题是我需要知道上传的块。当我从上传的

  • 当我登录应用程序后尝试将文件上传到应用程序时,我遇到了这个问题,手动上它工作正常,但当我尝试使用jeter上传文件时,我遇到了错误,你能帮帮我吗? Jmeter HTTP的截图 我已经使用了常见的方法上传文件,但我仍然收到消息,没有文档存在错误。Http请求截图 运行我的脚本后,我收到了这个请求和响应请求响应 但是,在成功提交时,它应该显示状态为true,消息显示为成功上传。浏览器开发人员工具的屏

  • 我上传一个文件到AmazonS3有问题。我开发了一个Grails RESTful服务,它使用AWS Java SDK生成预签名URL。当客户端上传一个文件时,它首先检索一个预签名的URL,然后使用这个将文件直接上传到我的S3 bucket。所以我有一个Grails服务,它创建了一个预签名的URL,如下所示...

  • 我在dropbox示例中没有看到任何有用的上传。 你能帮帮我吗?我在用Angularjs。

  • 问题内容: 我对詹金斯(Jenkins)非常陌生,我一直在尝试使用curl来完成我的工作。伴随着这种卷曲,我想将文件发送到Jenkins,该文件应放在我的工作区的特定目录中。我一直在大量搜索,但是似乎找不到清晰的文档来引导我解决问题。请指导。我也查看了Google和StackOverflow上的其他文章,但找不到我想要的东西。 curl -X POST JENKINS_URL / job / JO

  • 问题 如何使用自定义中间件在调用下一个上下文时获取响应正文? 到达await _next行后。从调试中调用(上下文); 不从操作结果返回 JSON 数据 获取用户菜单 我需要从上面的操作结果中得到响应体。 我的代码我试试: https://i.stack.imgur.com/PHUMs.png 当有效令牌时,它会在浏览器谷歌上返回如下数据 但在我的应用程序浏览器上返回无效令牌