如何使用curl从shell将大文件上传到已签名的S3 URL

时间:2017-09-06 07:51:31

标签: curl amazon-s3

我正在使用 curl 将大文件(> 5GB)上传到S3上的签名网址。

卷曲:

curl --request PUT \
  --url 'https://s3.amazonaws.com/my-bucket/file.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=EMIRJN3IU7FNIXRK5JKQ%2F20170906%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170906T070720Z&X-Amz-Expires=100&X-Amz-SignedHeaders=content-type%3Bhost&x-amz-acl=public-read&X-Amz-Signature=431a62c997c8202512996244b0267e83cb52c0c9d306376e15f43e22c07938f9' \
  --header 'content-type: application/x-zip-compressed' \
  --upload-file '/tmp/file.zip'

响应:

<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>EntityTooLarge</Code>
    <Message>Your proposed upload exceeds the maximum allowed size</Message>
    <ProposedSize>7192576000</ProposedSize>
    <MaxSizeAllowed>5368709120</MaxSizeAllowed>
    <RequestId>61803227A539E1F6</RequestId>
    <HostId>75RCx1xBVCzVeBbof6GZRN0fAY9/tVTDUaavdXXXkNMVWPWLLhkvZx--MxjaalxlWuiuAg6qCA=</HostId>
</Error>

这是由于AWS S3 forcing multipart upload for files larger than 5GB

如何使用curl在S3上执行分段上传到签名URL?

如果那是不可能的,还有其他工具吗?请注意,这是公开上传,即AWS CLI不是一个选项,因为运行这些上传的用户没有我们的凭据。

0 个答案:

没有答案