/********app.js***********/
var express = require('express'),
aws = require('aws-sdk'),
bodyParser = require('body-parser'),
multer = require('multer'),
imager = require('multer-imager'),
multerS3 = require('multer-s3');
var app = express(),
app.use(bodyParser.json());
var upload = multer({
storage: imager({
dirname: 'avatar',
bucket: 'my bucket',
accessKeyId: 'myaccesskey',
secretAccessKey: 'secretaccesskey',
region: 'Asia Pacific (Mumbai)',
signatureVersion: 'v4',
filename: function (req, file, cb) {
cb(null, Date.now())
},
gm: {
width: 200,
height: 200,
options: '!',
format: 'png'
},
s3 : {
Metadata: {
'acl': 'public-read'
}
}
})
});
app.post('/upload', upload.array('upl', 1), function(req, res, next){
console.log(req.files); // Print upload details
res.send('Successfully uploaded!');
});
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
app.listen(3001, function() {
console.log('Example app listening on port 3001!');
});
私は上記のコードを使用して、私の画像をアップロードして、サイズを変更しようとしたとき、私は私をアップロードしようとしたとき、私は、次のerror.Butを取得していますnodejsでmulter-imager npmモジュールを使用してamazon s3 bucketにイメージをアップロードする方法?以下は
/***************index.html*********************/
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
Hey! Lets try uploading to s3 directly :)
<form method="post" enctype="multipart/form-data" action="/upload">
<p>
<input type="text" name="title" placeholder="optional title"/>
</p>
<p>
<input type="file" name="upl"/>
<!-- <input type="file" name="uplo"/> -->
</p>
<p>
<input type="submit"/>
</p>
</form>
</body>
</html>
/**********************************************/
....私のindex.htmlファイルでありますファイルを直接サイズ変更しないでnpm multer-s3モジュールの助けを借りて成功しましたが、サムネイルのサイズを変更したり縮小したりできませんでした。 multer s3 module.iを使用してサムネイルサイズを縮小する必要がありますか?
エラー:
UnknownEndpoint: Inaccessible host: `s3.asia'. This service may not be available in the `Asia Pacific (Mumbai)' region.
at Request.ENOTFOUND_ERROR (/path/to/folder//node_modules/s3fs/node_modules/aws-sdk/lib/event_listeners.js:393:46)
at Request.callListeners (/path/to/folder//node_modules/s3fs/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/path/to/folder//node_modules/s3fs/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/path/to/folder//node_modules/s3fs/node_modules/aws-sdk/lib/request.js:668:14)
at ClientRequest.error (/path/to/folder//node_modules/s3fs/node_modules/aws-sdk/lib/event_listeners.js:232:22)
at ClientRequest.<anonymous> (/path/to/folder//node_modules/s3fs/node_modules/aws-sdk/lib/http/node.js:62:19)
at emitOne (events.js:115:13)
at ClientRequest.emit (events.js:210:7)
at TLSSocket.socketErrorListener (_http_client.js:399:9)
at emitOne (events.js:115:13)
at TLSSocket.emit (events.js:210:7)
at emitErrorNT (internal/streams/destroy.js:62:8)
at _combinedTickCallback (internal/process/next_tick.js:102:11)
at process._tickDomainCallback (internal/process/next_tick.js:198:9)
この問題を解決するにはどのように?私の地域がこの機能を利用できるようにする方法はありますか?
地域:「アジア太平洋地域(ムンバイ) ' これは私の地域でどのようにその形式で与えるのですか? – Jagadeesh
http://docs.aws.amazon.com/general/latest/gr/rande.html - >ように見える:ap-south-1 – MRonline
私はあなたが言ったように領域を置き換えましたが、ゼロバイト画像をアップロードするとアップロードされます.. – Jagadeesh