我有一個快速服務嘗試將物件寫入 s3 存盤桶,但出現以下錯誤:
配置中缺少憑據
我在本地承擔我的 AWS 角色,該角色.aws/credentials在我的 Dockerfile 中設定我的憑證,然后我將它們復制到我的容器中。
RUN mkdir "/home/node/.aws" && touch "/home/node/.aws/config" && touch "/home/node/.aws/credentials"
RUN echo "${AWS_CREDENTIALS}" > "/home/node/.aws/credentials"
檔案說:
開發工具包會自動檢測在您的環境中設定為變數的 AWS 憑證并將其用于開發工具包請求,從而無需在您的應用程式中管理憑證。您為提供憑據而設定的環境變數是:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN(可選)
所以我在使用 sdk 時不必手動管理我的憑據?
目前寫入 s3 存盤桶的代碼:
import s3 from 'aws-sdk/clients/s3';
const s3Client = new s3({region: process.env['region']});
async upload() {
const params = {
Bucket: process.env['bucket'],
Key: 'test.json',
Body: somejsonfile
}
const res = s3Client.upload(params).promise();
return results;
}
uj5u.com熱心網友回復:
為節點正確的用戶認為執行該代碼?
檔案/home/node/.aws/credentials看起來像這樣嗎:
[default]
aws_access_key_id = <AAK>
aws_secret_access_key = <ASK>
要除錯,您可以嘗試以下操作:您可以嘗試直接在代碼中添加您的 AWS 憑證,如下所示:
AWS.config.update({
accessKeyId: "<AAK>",
secretAccessKey: "<ASK>",
"region": "<REGION>"
});
或者,您可以嘗試洗掉/home/node/.aws/credentials檔案并將憑據移動到/home/node/.aws/config檔案:
[default]
region=<REGION>
output=json
aws_access_key_id = <AAK>
aws_secret_access_key = <ASK>
或者,您可以嘗試在 Dockerfile 中添加憑據和區域作為環境變數:
ENV AWS_ACCESS_KEY_ID=<AAK>
ENV AWS_SECRET_ACCESS_KEY=<ASK>
ENV AWS_DEFAULT_REGION=<REGION>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/366645.html
標籤:节点.js 亚马逊网络服务 表达 亚马逊-s3 aws-sdk
