我尝试过使用aws-sdk和knox,我得到状态代码301试图上传图像.我得到状态码301和消息 - '您尝试访问的存储桶必须使用指定的端点进行寻址.请将以后的所有请求发送到此端点.这适用于PHP.
AWS.config.loadFromPath(__dirname + '/config/config.json');
fs.readFile(source, function (err, data) {
var s3 = new AWS.S3();
s3.client.createBucket({Bucket: 'mystuff'}, function() {
var d = {
Bucket: 'mystuff',
Key: 'img/test.jpg',
Body: data,
ACL: 'public-read'
};
s3.client.putObject(d, function(err, res) {
if (err) {
console.log("Error uploading data: ", err);
callback(err);
} else {
console.log("Successfully uploaded data to myBucket/myKey");
callback(res);
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
我实际上解决了这个问题.在你的配置中你必须有一个区域,因为我的桶是"美国标准",我把我的区域留空并且它有效.config.json - {"accessKeyId":"secretKey","secretAccessKey":"secretAccessKey","region":""}
转到s3管理控制台选择一个文件并单击比例 - >查看文件链接. 控制台窗口中的美国标准 https://s3.amazonaws.com/yourbucket/ host yourbucket.s3.amazonaws.com/
us-west-1 https://s3-us-west-1.amazonaws.com/yourbucket/ host at console console yourbucket.s3-us-west-1.amazonaws.com/
小智 5
你试过.send()吗?
我可以通过下面的代码上传到S3.
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/AWSRequest.html
var s3object = {Bucket: 'mystuff', Key: name, Body : data['data']};
s3.client.putObject(s3object).done(function(resp){
console.log("Successfully uploaded data");
}).fail(function(resp){
console.log(resp);
}).send();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4586 次 |
| 最近记录: |