私の実装を(それが:)であるとして、あるいは単にそれを維持)。 express
、knox
,mime
,fs
。
var knox = require('knox').createClient({
key: S3_KEY,
secret: S3_SECRET,
bucket: S3_BUCKET
});
exports.upload = function uploadToAmazon(req, res, next) {
var file = req.files.file;
var stream = fs.createReadStream(file.path)
var mimetype = mime.lookup(file.path);
var req;
if (mimetype.localeCompare('image/jpeg')
|| mimetype.localeCompare('image/pjpeg')
|| mimetype.localeCompare('image/png')
|| mimetype.localeCompare('image/gif')) {
req = knox.putStream(stream, file.name,
{
'Content-Type': mimetype,
'Cache-Control': 'max-age=604800',
'x-amz-acl': 'public-read',
'Content-Length': file.size
},
function(err, result) {
console.log(result);
}
);
} else {
next(new HttpError(HTTPStatus.BAD_REQUEST))
}
req.on('response', function(res){
if (res.statusCode == HTTPStatus.OK) {
res.json('url: ' + req.url)
} else {
next(new HttpError(res.statusCode))
}
});
非常に便利です!ありがとう! – CainaSouza
s3バケットのフォルダを指定する方法 –
s3には正確に「フォルダ」がありません。あなたは単に "foo/bar /"などのファイルをprependするだけで、s3コンソールにはフォルダのように表示されます。この場合、引数をfile.nameから "foo /" + file.nameに変更すると、トリックが実行されます。 – Liam