1
Q
NodeJS
A
답변
3
Yupp, 즉 s3
라이브러리라는 것을 알았습니다.
이 라이브러리가 "스트림"을 노출한다는 것은 무엇을 의미합니다. 다음은 스트림을 정의하는 API입니다. http://nodejs.org/api/stream.html
노드의 스트림 인터페이스를 사용하면 모든 읽을 수있는 스트림 (이 경우 POST의 본문)을 쓰기 가능한 스트림 (이 경우 S3 업로드)으로 파이프 할 수 있습니다. 여기에 예를
var pkgcloud = require('pkgcloud'),
fs = require('fs');
var s3client = pkgcloud.storage.createClient({ /* ... */ });
app.post('/upload', function(req, res) {
var s3upload = s3client.upload({
container: 'a-container',
remote: 'remote-file-name.txt'
})
// pipe the image data directly to S3
req.pipe(s3upload);
});
편집이다 : How to handle POSTed files in Express.js without doing a disk write
편집 : 여기
는 파일 스트림을 지원 라이브러리의 다른 종류에 직접 업로드 방법 파이프의 예입니다 질문에 대한 답변을 완료하려면 채팅에 등장한 사람 :req.end()
은 스트림 마법 덕택에 자동으로 을 호출합니다. 운영자가 req의 끝에서 다른 작업을 원한다면 그는 쉽게 할 수 있습니다 : req.on('end', res.send("done!"))
그러면 메모리에 저장됩니까? – nick
"저장"되지 않지만'pipe()'중에 메모리에 남게됩니다. :) – rdrey
argh. 아마존에 파일을 업로드하는 "더 좋은 방법"이 있다고 생각하십니까? – nick