You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中AWS SDK删除S3对象遇AccessDenied权限问题

S3删除对象AccessDenied问题排查

我使用的Access Key对应的用户已被加入拥有AmazonS3FullAccess权限的组,此前也尝试过直接为该用户附加该权限,但均未生效。我已尝试网络及Stack Overflow上的所有解决方案,调用AWS SDK删除S3对象时仍出现AccessDenied错误。

Node.js S3配置代码

require("dotenv").config();
const multer=require("multer");
const path=require("path");
const S3 = require('aws-sdk/clients/s3')
const fs=require("fs");

const bucketName=process.env.AWS_BUCKET_NAME;
const region=process.env.AWS_BUCKET_REGION;
const accessKeyId=process.env.AWS_ACCESS_KEY;
const secretAccessKey=process.env.AWS_SECRET_KEY

const s3=new S3({
    region,
    accessKeyId,
    secretAccessKey,
    signatureVersion: "v4"
});

function uploadFile(file){
    const fileStream=fs.createReadStream(file.path);

    const uploadParams={
        Bucket:bucketName,
        Body:fileStream,
        Key:file.filename
    }

    return s3.upload(uploadParams).promise();
}

module.exports = {uploadFile, s3, bucketName}

删除对象代码

const params={
    Bucket: bucketName,
    Key:req.body.image
}

s3.deleteObject(params, function(err,data){
    if(err){
        throw err
    }
})

存储桶策略

{
    "Version": "2012-10-17",
    "Id": "Policy1674235426665",
    "Statement": [
        {
            "Sid": "Stmt1674235419839",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::secondhandsellit/*"
        }
    ]
}

错误信息

C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\request.js:31
            throw err;
            ^

AccessDenied: Access Denied
    at Request.extractError (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\services\s3.js:711:35)
    at Request.callListeners (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\sequential_executor.js:106:20)
    at Request.emit (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\sequential_executor.js:78:10)
    at Request.emit (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\request.js:686:14)
    at Request.transition (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\request.js:22:10)
    at AcceptorStateMachine.runTo (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\state_machine.js:14:12)
    at C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\state_machine.js:26:10   
    at Request.<anonymous> (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\request.js:38:9)
    at Request.<anonymous> (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\request.js:688:12)
    at Request.callListeners (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\sequential_executor.js:116:18)
    at Request.emit (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\sequential_executor.js:78:10)
    at Request.emit (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\request.js:686:14)
    at Request.transition (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\request.js:22:10)
    at AcceptorStateMachine.runTo (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\state_machine.js:14:12)
    at C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\state_machine.js:26:10   
    at Request.<anonymous> (C:\Users\rohit\OneDrive\Desktop\code\secondhandsellit\node_modules\aws-sdk\lib\request.js:38:9) {
  code: 'AccessDenied',
  region: null,
  time: 2023-01-20T17:26:29.116Z,
  requestId: 'GXSSWPSSGXDBEXRJ',
  extendedRequestId: '/KDF6gAGAnevZQ/qh2ttGAyYPJoQ5ePX07rEg0OikBhP+X/sGxUeWS08cWTIJTySipdAgxbcKeM=',
  cfId: undefined,
  statusCode: 403,
  retryable: false,
  retryDelay: 37.277269050256145
}

内容的提问来源于stack exchange,提问作者Rohit Nohwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 22:05:18