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

如何在浏览器中使用javascript sdk上传aws s3 bucket中的多部分文件

钦德佑
2023-03-14

我已经尝试使用该功能

var bucket = new AWS.S3({params: {Bucket: 'mybucket'}});
var params = {Key: file.name, ContentType: file.type};
bucket.createMultipartUpload(params, function (err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response
});

它获得成功的响应包括上传id,但我在s3存储桶中找不到该文件。那么,从浏览器从javascript sdk进行分段上传文件还有其他方法吗??.我正在使用 aws 认知身份验证。提前致谢。

共有3个答案

全誉
2023-03-14

如果您使用 .upload,它将自动使用发布多部分。并且您必须设置 s3 存储桶 cors 策略以允许 POST 和 HEAD 加公开的标头 ETag

池庆
2023-03-14

您正在使用的键是文件名。因此,如果正确上传,该文件应存在于我的桶/文件名中。此外,您可以在控制台上记录内容以查看是否有任何问题。

姬温文
2023-03-14

实际上这是一个四步的过程。您已经调用了第一个Api,还有三个Api需要调用。

订单如下:

2 . http://docs . AWS . Amazon . com/AWSJavaScriptSDK/latest/AWS/S3 . html # upload part-property。3 . http://docs . AWS . Amazon . com/AWSJavaScriptSDK/latest/AWS/S3 . html # list parts-property。4 . http://docs . AWS . Amazon . com/AWSJavaScriptSDK/latest/AWS/S3 . html # complete multipart upload-property。

对于上述所有三个api,您必须使用相同的key-name(您在第一个api中使用过的)和downad-id(您从第一个api的响应中获得的)

在第二个api中,您必须上传文件以及您选择的“部件号”。

然后从第三次 api 调用中,您可以获取为文件生成的“TagId”以及您使用的“部分编号”。

现在使用这个TagId和部件号,您必须调用最终的api。

这就完成了文件上载。

 类似资料:
  • 我试过XMLHttpRequest的PUT请求。有一个浏览器端的限制,不允许我上传大于2GB的文件。然后我尝试了一个不需要Javascript端预处理的超文本标记语言表单的POST请求。它在一次操作中有5GB的上传大小限制。 AWS建议在较大的上传场景中进行多部分上传。这需要将文件分成小块,然后上传成小块。当文件大小大于10GB时,如何从浏览器中正确地执行此操作。

  • 问题内容: 我是一名javascript / java开发人员,我一直在尝试弄清楚seleniumwebdriver自动化框架如何从文件系统上载文件。无法设置通过javascript输入的文件,因为它违反了安全性。但是,webdriver可以通过以下命令执行此操作: 因此,他们通过发送密钥来设置值吗?我不明白 我浏览了以下源代码:http : //code.google.com/p/seleniu

  • 我正在尝试使用angularjs和spring MVC上传一个文件 在application-context.xml中有一个multipartResolver bean。 我表单如下所示:

  • 在Android中使用OKHTTP以多部分方式上传单个大文件(更具体地说,上传到s3)时,我有什么选择?

  • 是否可以使用数据上传包含其他数据(如描述等)的文件?我正在使用骨干.js在我的前端,我用它调用REST API(jQuery)。我不使用任何视图解析器,但我想以某种方式将我的文件传递给控制器,如下所示: 以便uploadItem存储: 但是我不会(也不能)把这个加到我的模型里。 当然,我也很感兴趣是否有可能有这样的控制器:

  • 问题内容: 是否可以将selenium连接到我通常使用的浏览器而不是驱动程序?对于正常浏览,我使用带有多个插件的chrome-添加block plus,flashblock等。我想尝试使用此特定配置加载网站。我怎样才能做到这一点? 我不在乎是否使用驱动程序生成进程。我只想要完整的浏览器配置-Cookie,插件,字体等。 谢谢 问题答案: 首先,您需要下载,然后将环境变量的可执行路径放置到环境变量中