5
다음은 현재 코드입니다. 나는 익스프레스와 녹스를 사용하고 있는데, 나는 이상한 일을하고 있다고 생각하지 않지만, s3.putFile
은 400 상태 코드를 응답하지만 null 오류이며 파일이 업로드되지 않습니다.node.js를 사용하여 Heroku의 s3에 pass-thru 업로드를 수행하는 방법은 무엇입니까?
var express = require('express');
var knox = require('knox');
var app = express();
app.use(express.bodyParser());
var s3 = knox.createClient({
key: process.env.AWS_ACCESS_KEY_ID,
secret: process.env.AWS_SECRET_ACCESS_KEY,
bucket: process.env.S3_BUCKET_NAME
});
app.post('/upload', function(req, res, next) {
var photo = req.files.photo;
var s3Headers = {
'Content-Type': photo.type,
'x-amz-acl': 'public-read'
};
s3.putFile(photo.path, photo.name, s3Headers, function(err, s3response){
//handle, respond
});
});
이 같은 코드는 그냥 Heroku가에서, 심지어 cloud9 온라인 에디터/디버거에서 잘 작동합니다. 나는 그것이 "ephemeral file system"과 관련이 있다고 생각하지만 그것은 단지 추측입니다. 그러나 Clojure에서 Heroku에서 작동하는 s3 패스 스루 업로드를 noir과 weavejester's aws sdk을 사용하여 얻을 수 있었으므로 노드에서도 가능해야합니다.