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,
})