node.js - 无法使用aws-sdk在nodejs中上传图片

标签 node.js amazon-s3

我已尝试使用 aws-sdk 和 knox,但在尝试上传图像时收到状态代码 301。我收到状态代码 301 和消息 - '您尝试访问的存储桶必须使用指定的端点进行寻址。请将所有 future 请求发送到此端点。这适用于 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);   
            }
        });
    });
}); 

最佳答案

我真的解决了这个问题。在您的配置中,您必须有一个区域,因为我的存储桶是“美国标准”,我将我的区域留空并且它有效。 配置.json - { "accessKeyId": "secretKey", "secretAccessKey": "secretAccessKey", "region": ""

转到 s3 管理控制台,选择您的文件之一,然后单击属性 -> 查看文件链接。 美国标准 https://s3.amazonaws.com/yourbucket/ 在您的控制台窗口中托管 yourbucket.s3.amazonaws.com/

美国西部1 https://s3-us-west-1.amazonaws.com/yourbucket/ 在您的控制台窗口中托管 yourbucket.s3-us-west-1.amazonaws.com/

关于node.js - 无法使用aws-sdk在nodejs中上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14502143/

相关文章:

javascript - Nodejs 从 NodeJS 应用程序的不同文件夹执行二进制文件

javascript - 当 JSON.stringify 显示空对象但实际上它不为空时如何获取实际内容

javascript - Mongodb find() 返回未定义

node.js - ExpressJS 末尾的参数个数可变

amazon-s3 - 如何监控 Amazon S3 服务中对象的带宽?

javascript - Amazon S3 和跨源资源共享 (CORS)

node.js - 使用不带中间件功能的multer上载到S3

scala - 如何在Spark Shell中将s3与Apache Spark 2.2一起使用

node.js - 服务器重新启动时如何在 Node js 中保持持久 session ?

python - 如何使用 Python 为不同的前缀同时运行 AWS S3 sync 命令