Node.js 通过将signatureVersion设置为v4来修复,谢谢!AmazonS3在应用bucket加密设置之前评估并应用bucket策略。即使启用bucket加密设置,如果您具有拒绝此类PUT请求的bucket策略,则不包含加密信息的PUT请求也将被拒绝。检
Node.js 通过将signatureVersion设置为v4来修复,谢谢!AmazonS3在应用bucket加密设置之前评估并应用bucket策略。即使启用bucket加密设置,如果您具有拒绝此类PUT请求的bucket策略,则不包含加密信息的PUT请求也将被拒绝。检,node.js,amazon-web-services,amazon-s3,aws-sdk,acl,Node.js,Amazon Web Services,Amazon S3,Aws Sdk,Acl,通过将signatureVersion设置为v4来修复,谢谢!AmazonS3在应用bucket加密设置之前评估并应用bucket策略。即使启用bucket加密设置,如果您具有拒绝此类PUT请求的bucket策略,则不包含加密信息的PUT请求也将被拒绝。检查您的bucket策略,并根据需要进行修改。 const s3bucket = new AWS.S3({ accessKeyId: 'my-access-key-id', secretAccessKey: 'my-secret-
通过将
signatureVersion
设置为v4
来修复,谢谢!AmazonS3在应用bucket加密设置之前评估并应用bucket策略。即使启用bucket加密设置,如果您具有拒绝此类PUT请求的bucket策略,则不包含加密信息的PUT请求也将被拒绝。检查您的bucket策略,并根据需要进行修改。
const s3bucket = new AWS.S3({
accessKeyId: 'my-access-key-id',
secretAccessKey: 'my-secret-access-key',
Bucket: 'my-bucket-name',
})
const uploadParams = {
Body: file.data,
Bucket: 'my-bucket-name',
ContentType: file.mimetype,
Key: `files/${file.name}`,
}
s3bucket.upload(uploadParams, function (err, data) {
// ...
})
const url = s3bucket.getSignedUrl('getObject', {
Bucket: 'my-bucket-name',
Key: 'file-key',
Expires: 300,
})
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>
There were headers present in the request which were not signed
</Message>
<HeadersNotSigned>host</HeadersNotSigned>
<RequestId>D63C8ED4CD8F4E5F</RequestId>
<HostId>
9M0r2M3XkRU0JLn7cv5QN3S34G8mYZEy/v16c6JFRZSzDBa2UXaMLkHoyuN7YIt/LCPNnpQLmF4=
</HostId>
</Error>
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::YOURBUCKETNAME"
}
]
}
const s3bucket = new AWS.S3({
signatureVersion: 'v4',
accessKeyId: 'my-access-key-id',
secretAccessKey: 'my-secret-access-key',
Bucket: 'my-bucket-name',
})
const uploadParams = {
Body: file.data,
Bucket: 'my-bucket-name',
ContentType: file.mimetype,
Key: `files/${file.name}`,
}
s3bucket.upload(uploadParams, function (err, data) {
// ...
})
const url = s3bucket.getSignedUrl('getObject', {
Bucket: 'my-bucket-name',
Key: 'file-key',
Expires: 300,
})
const s3bucket = new AWS.S3({
signatureVersion: 'v4',
accessKeyId: 'my-access-key-id',
secretAccessKey: 'my-secret-access-key',
Bucket: 'my-bucket-name',
})
const uploadParams = {
Body: file.data,
Bucket: 'my-bucket-name',
ContentType: file.mimetype,
Key: `files/${file.name}`,
}
s3bucket.upload(uploadParams, function (err, data) {
// ...
})
const url = s3bucket.getSignedUrl('getObject', {
Bucket: 'my-bucket-name',
Key: 'file-key',
Expires: 300,
})