Javascript AWS S3桶,罐和x27;无法从文件中获取头对象

Javascript AWS S3桶,罐和x27;无法从文件中获取头对象,javascript,amazon-web-services,aws-sdk,Javascript,Amazon Web Services,Aws Sdk,我面临以下问题: 当我上传新文件时,使用签名url,然后尝试使用aws sdk从上传的文件S3中获取头部对象,我会得到错误禁止,但如果我使用aws控制台上传新文件,我可以获取头部对象。有人知道问题出在哪里吗?请确保在预先签名的帖子url中指定的内容正确无误。 例如设置(bucket owner full control): 相反的呢?如果你从代码上传一个文件,你能从控制台下载吗?控制台中的路径是否正确?挑战在于使用已签名的url将新文件上载到S3 bucket。我理解这一点,但我试图确定问题是否

我面临以下问题:
当我上传新文件时,使用
签名url
,然后尝试使用
aws sdk
从上传的文件S3中获取头部对象,我会得到错误
禁止
,但如果我使用aws控制台上传新文件,我可以获取头部对象。有人知道问题出在哪里吗?

请确保在预先签名的帖子url中指定的内容正确无误。 例如设置(
bucket owner full control
):


相反的呢?如果你从代码上传一个文件,你能从控制台下载吗?控制台中的路径是否正确?挑战在于使用已签名的url将新文件上载到S3 bucket。我理解这一点,但我试图确定问题是否出在下载上,或者问题是否出在上载上,这看起来只是成功了,但并没有按照你想要的方式创建对象。此外,您不能从
PUT
重复使用已签名的URL来执行
GET
。。。你需要一个新的签名URL,因为REST动词(
PUT
GET
DELETE
,等等)被合并到签名中--签名URL只能执行签名时指定的操作。谢谢你,伙计!谢谢你的回答。我试过了,我得到了同样的错误嗯,奇怪,让我再仔细研究一下这是我的代码:
let parameters={Bucket:Bucket,Key:'123/example.wav',ACL:'Bucket owner full control'}console.log(s3.getSignedUrl('putObject',parameters))
然后我使用curl上传新文件。在我尝试使用以下代码获取head对象的方法之后:
let params={Bucket:Bucket,Key:'123/example.wav'};s3.headObject(params,(err,data)=>{if(err)console.log('ERRsRR',err)console.log('data',data)})
var s3 = new AWS.S3();
var params = { Bucket: req.body.bucketname, ACL: 'bucket-owner-full-control', Key: req.body.name, ContentType: req.body.type };
s3.getSignedUrl('putObject', params, function (err, url) ....