[英]AWS s3 api error: specified bucket does not exist
我正在使用節點AWS SDK將圖像保存到s3。 盡管存在存儲桶且我擁有正確的權限,但我仍然收到以下錯誤:
{ [NoSuchBucket: The specified bucket does not exist]
message: 'The specified bucket does not exist',
code: 'NoSuchBucket',
time: Tue Oct 21 2014 12:32:50 GMT-0400 (EDT),
statusCode: 404,
retryable: false }
我的nodejs代碼:
var fs = require('fs');
var AWS = require('aws-sdk'); //AWS library (used to provide temp credectials to a front end user)
AWS.config.loadFromPath('./AWS_credentials.json'); //load aws credentials from the authentication text file
var s3 = new AWS.S3();
fs.readFile(__dirname + '/image.jpg', function(err, data) {
var params = {
Bucket: 'https://s3.amazonaws.com/siv.io',
Key: 'something',
};
s3.putObject(params, function(err, data) {
if (err) {
console.log(err);
} else {
console.log("Successfully uploaded data to myBucket/myKey");
}
});
});
我還嘗試了siv.io.s3-website-us-east-1.amazonaws.com作為存儲桶名稱。 有人能讓我知道我的錯嗎? 如有必要,我可以提供更多信息。
該錯誤表明該存在桶尚不存在。 根據代碼的外觀,存儲桶名稱不正確,這就是無法找到文件的原因。 要么調用createBucket()
要么在AWS控制台中創建存儲桶。
您也可以添加文件,而不僅僅是進行API調用。 檢查AWS API文檔 ,了解要放在哪里。 他們的文檔非常好。
這是我做的:
var stream = fs.createReadStream( 'path/to/file' );
stream.on( 'error', function( error ) {
seriesCb( error );
} );
//TODO: Other useful options here would be MD5 hash in the `ContentMD5` field,
s3.putObject( {
"Bucket": 'siv.io',
"Key": 'name_of/new_file',
"ContentType": "application/pdf", //might not apply to you
"Body": stream
}, function( s3err, s3results ) {
if ( s3err ) return console.log('Bad stuff. ' + s3err.toString() );
console.log( "Saved to S3. uri:" + s3uri);
} );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.