function uploadGuideMedia(req, res, next) {
if (!req.file && !req.body.id) {
return res.status(401).send({
status: 401,
data: "Upload a file with 'file' key"
});
}
db.query('SELECT * from guide_media where _id = $1', [req.body.id], function(err, guide) {
if (err) return next(err);
if (guide.rows.length == 0) {
return res.status(404).send({
status: 404,
data: "Guide_media not found"
})
} else {
let name = req.file.path + path.extname(req.file.originalname);
fs.renameSync(req.file.path, name);
req.file.path = name;
var s3bucket = new AWS.S3({
params: {
Bucket: 'mapery-v2'
}
});
fs.readFile(req.file.path, function(err, lq_file) {
s3bucket.createBucket(function() {
var params = {
Key: 'upload-v2/' + req.file.originalname,
Body: lq_file,
ContentType: req.file.mimetype,
ACL: 'public-read'
};
s3bucket.upload(params, function(err, aws_images) {
fs.unlink(req.file.path, function(err) {
db.query('UPDATE guide_media SET image_path = $1 WHERE _id = $2 RETURNING *', [aws_images.Location, req.body.id], function(err, guide_res) {
if (err) return next(err);
return res.status(200).send({
status: 'success',
data: guide_res.rows
});
});
});
})
})
})
}
});
}
답변
파트로 업로드한다고해서 파일이 여러 부분으로 S3에 저장되는 것은 아닙니다. 페이로드가 충분히 크면 SDK가 파일을 여러 부분에 동시에 업로드하여 업로드가 실패 할 경우 업로드를 부분적으로 다시 시도 할 수 있습니다. 기본적으로 SDK는 5MB의 partSize를 사용합니다. 다음 코드를 사용하여 partSize를 10MB로 설정할 수 있습니다.
var params = {Bucket: 'bucket', Key: 'key', Body: stream};
var options = {partSize: 10 * 1024 * 1024, queueSize: 1};
s3.upload(params, options, function(err, data) {
console.log(err, data);
});
편집 : 업로드 방법에 대한 문서에 링크. http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property
감사합니다. 부품 크기를 조금 더 늘릴 수 있습니까 ?? –
고마워. –
partSize를 1GB로 변경했고 30MB 파일을 업로드하려고했지만 작동하지 않는다. –
- 1. 복수 및 단일 파일 업로드 작업
- 2. zksforce 단일 업로드
- 3. Blueimp 파일 업로드 : 단일 파일 업로드
- 4. 배경 업로드 작업
- 5. 단일 스레드 작업 부하
- 6. CompletableFuture 단일 작업
- 7. 단일 리디렉션에서 두 작업
- 8. 단일 트랜잭션에서 여러 작업
- 9. uploadify - 단일 파일 업로드 제한
- 10. Appengine 설치에 단일 파일 업로드
- 11. git 디렉토리에 단일 이미지 업로드
- 12. HTML5로 단일 특정 파일 업로드
- 13. html로 단일 버튼으로 이미지 업로드
- 14. 이미지를 단일 폴더로 MediaWiki에 업로드
- 15. PLupload를 사용한 단일 파일 업로드?
- 16. 단일 이미지로 여러 이미지 업로드
- 17. 단일 사용자 용 PHP에서 이미지 업로드 만들기?
- 18. ASP.Net 데이터베이스 및 단일 트랜잭션의 IO 작업
- 19. iOS에서 업로드 작업 대기열에 넣기
- 20. Photoshop CV 업로드 작업 신청
- 21. Flask에 사용자 업로드 이미지 작업
- 22. 업로드 된 파일의 여러 작업
- 23. jQuery를 업로드 파일 나던 작업
- 24. 작업 카피없이 단일 파일 커밋
- 25. 단일 작업 활동 다시 시작
- 26. 단일 쿼리에서 여러 작업 ORACLE
- 27. 단일 양식의 두 가지 작업
- 28. 는 단일 명령 줄 작업
- 29. 단일 스레드에서 여러 작업 동기화
- 30. Sidekiq 단일 작업 실행 중지
안정성 및 속도 AWS는 기본적으로 최대 업로드를 지정하지 않으면 멀티 파트 업로드를 사용합니다. 5MB의 청크가 필요합니다. 1go로 업로드하려면 max-uploads를 1로 설정해야합니다. – jarnohenneman
답변 해 주셔서 감사합니다. 'params' 변수에이를 지정해야합니까 ?? –