簡體   English   中英

Amazon S3-從Node.js SDK訪問存儲桶

[英]Amazon S3 - accessing bucket from nodejs SDK

使用node SDK從nodejs訪問我的全新存儲桶(通過aws控制台創建)時遇到了問題。 我所做的步驟(如果我錯過了一些事情,請提供幫助)

  • 創建了一個aws帳戶,所以我現在有一個root用戶
  • 為SDK創建了新的訪問密鑰
  • 轉到S3並在控制台后面創建了一個新存儲桶
  • 在nodejs中,我嘗試將某些內容上傳到此存儲桶,但我一直在“訪問被拒絕”,但沒有進一步的解釋。

我使用存儲桶嘗試了不同的區域,並生成了新的訪問密鑰,還嘗試為存儲桶設置了較低的權限,以至於我可以使用其中一個測試存儲桶為所有人啟用所有功能,但仍然出現錯誤。

代碼位:

    class SomeNodeService {

        constructor() {
            this.s3 = new S3({
                params: {
                    Bucket: 'some.bucket.which.name.is.unique',
                    accessKeyId: 'SOMEID',
                    secretAccessKey: 'SOMEID'
                }
            });
        }

        uploadAttachment(attachment) {
            const _this = this;
            return co(function * () {
                const file = yield _readFile(attachment.path, 'utf8');
                const key = `${KEY_PREFIX}attachment/${Date.now()}/${attachment.name}`;
                const params = {
                    Key: key,
                    Body: file
                };

                return yield _this.s3.putObject(params).promise();
            });
        }

    }

我不知道我在想什么:S


按照@filipebarretto,我創建了一個新用戶,並為該用戶創建了新的訪問令牌,還給了他AmazonS3FullAccess。 值得一提的是,我還創建了一個組名“ sysadmin”,並且向該組本身提供了AmazonS3FullAccess權限,因此將用戶分配給該組也會導致向該用戶授予該權限。 所以我所做的一切

1)創建新組sysadm 2)授予組權限“ AmazonS3FullAccess” 3)創建新用戶XY並加入組sysadm 4)重新創建XY用戶的訪問令牌

但是我仍然會拒絕訪問:/

要配置您的憑據,請使用:

AWS.config = new AWS.Config();
AWS.config.accessKeyId = "accessKey";
AWS.config.secretAccessKey = "secretKey";
AWS.config.region = "region";

這既不是最好的方法,也不是最安全的方法。 有關更多信息,請訪問: http : //docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials.html

您應該在參數中定義存儲桶和密鑰,例如:

const params = {
    Key: key,
    Body: file
};

return yield _this.s3.putObject(params).promise();

在構造函數上,僅使用:

constructor() {
    this.s3 = new S3();
}

var s3 =新的AWS.S3();

參考: http : //docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM