使用aws-sdk使用nodejs将图像上传到s3
我想上传图片到amazon web services器,为此,我正在使用aws-sdk和nodejs。
我能够上传图片到S3桶,但是当我点击URL来访问他们,我得到了访问被拒绝的错误。
这是我的configuration
var AWS = require('aws-sdk'); //aws credentials AWS.config = new AWS.Config(); AWS.config.accessKeyId = "<access_key>"; AWS.config.secretAccessKey = "<secret_key>"; AWS.config.region = "ap-southeast-1"; AWS.config.apiVersions = { "s3": "2006-03-01" } var s3 = new AWS.S3(); var bodystream = fs.createReadStream(req.files.pic.path); var params = { 'Bucket': '<bucket_name>', 'Key': 'uploads/images/' + req.files.pic.name, 'Body': bodystream, 'ContentEncoding': 'base64', 'ContentType ': 'image/jpeg' }; //also tried with s3.putObject s3.upload(params, function(err, data){ console.log('after s3 upload====', err, data); })
图像上传成功,但其内容types是应用程序/八位字节。 此外,我认为有一些权限问题,因为当我添加一个新的权限,然后我能够下载图像,但无法看到它。
你能告诉我这个configuration有什么问题吗?我也想知道s3.upload和s3.putObject方法之间的区别。
为了指定Content-Type
标题,你需要定义Metadata
部分:
var params = { 'Bucket': '<bucket_name>', 'Key': 'uploads/images/' + req.files.pic.name, 'Body': bodystream, 'ContentEncoding': 'base64', Metadata: { 'Content-Type': 'image/jpeg' } };
- 在Mongo GridFS或Amazon S3中存储图像的速度更快?
- 如何使用图像URL将图像上传到AWS S3?
- 特拉维斯CI。 NetworkingError:Node.js和AWS S3存储桶之间的CERT_UNTRUSTED错误
- 当使用节点锐利的包来调整图像大小并上传到s3时,它会被旋转
- Node.js Amazon S3 – 下载失败,出现SignatureDoesNotMatch错误
- AWS Lambda – 下载文件,并将其用于相同的function – nodejs
- 确定AWS S3上传的部件大小和队列大小参数
- 我可以在没有nodejs服务器的情况下在客户端使用webpack吗?
- 使用请求从节点stream上传到S3的问题