如何解决为什么当使用后置预签名url上传文件时,返回的响应没有密钥
我当前正在使用预签名的url将照片上传到我的存储桶,但是上传完成后,响应状态为204,并且此响应不包含密钥。使用预签名后的网址上传文件时是否可以返回密钥?
解决方法
如果createPresignedPost
创建成功,其响应为204,则它不返回键作为响应的字段。
请查看此代码,以帮助您实现目标。
服务器端:
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))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。