【发布时间】:2020-12-06 21:11:45
【问题描述】:
我目前正在使用 post presigned url 将照片上传到我的存储桶,但是当上传完成时,响应状态为 204,并且此响应不包含密钥。使用 post presigned url 上传文件时是否可以返回密钥
【问题讨论】:
标签: amazon-s3 post status pre-signed-url
我目前正在使用 post presigned url 将照片上传到我的存储桶,但是当上传完成时,响应状态为 204,并且此响应不包含密钥。使用 post presigned url 上传文件时是否可以返回密钥
【问题讨论】:
标签: amazon-s3 post status pre-signed-url
如果createPresignedPost创建成功,它的响应是204,它不返回key作为响应的字段。
查看此代码,它可以帮助您实现这一目标。
服务器端:
const presignedKey = 'your/key'
var params = {
Bucket: 'bucket',
Fields: {
key: presignedKey
}
};
s3.createPresignedPost(params, function(err, data) {
if (err) {
console.error('Presigning post data encountered an error', err);
} else {
data.Fields.key = presignedKey;
console.log('The post data is', data);
}
});
客户端应遍历已包含key 字段的响应值。
const formData = new FormData()
Object.keys(presignedUrlResponse?.fields).forEach(key => {
formData.append(key, presignedUrlResponse?.fields[key])
})
formData.append('file', fs.createReadStream(file))
【讨论】: