S3上传KEY!= FILENAME(aws)

时间:2014-08-06 07:02:34

标签: bash curl amazon-web-services amazon-s3

我想使用唯一标识符作为我的亚马逊s3密钥,但仍然可以使用原始文件名下载文件。

例如,我使用预先签名的POST上传文件。所以,让我说我使用这个卷曲字符串发布:

"curl -s -ss -X POST -i \
    -F \"key=my_files/1.format\" \
    -F \"AWSAccessKeyId=" + my_AWSAccessKeyId + "\" \
    -F \"Policy=" + my_policy + "\" \
    -F \"Signature=" + my_signature + "\" \
    -F \"file=@my_picture.jpg\" \
    https://my_bucket.s3.amazonaws.com/"

所以我有这个任意文件," 1.format"但它确实应该是my_picture.jpg。当我尝试从https://my_bucket.s3.amazonaws.com/my_files/1.format下载时,我下载了1.format文件,而不是my_picture.jpg。

我知道设置Content-Disposition可能是正确的解决方案,但我还没有能够弄清楚如何正确地使用卷曲。

1 个答案:

答案 0 :(得分:0)

您应该能够在Content-Disposition请求中设置POST标头,该标头将在S3响应中使用。只需将-H "Content-Disposition:whatever"添加到curl来电。

另一种选择是在密钥名称中使用/并将尾随部分设置为原始文件名。例如。 uuid/filename.jpeg