Trong ứng dụng node.js của tôi, tôi đang sử dụng gm (a graphicsmagick wrapper) và aws2js (amazon cli wrapper). Vấn đề là Amazon cần phải biết chiều dài nội dung để tôi có thể đặt luồng trên S3.có độ dài nội dung của luồng
Tôi đang tải lên một hình ảnh để ứng dụng của tôi, đọc tập tin đó bằng cách tạo ra một dòng:
var fileStream=fs.createReadStream(file.path)
tôi vượt qua file đó vào gm, thay đổi kích thước và sau đó nói với nó để dòng tập tin đó. Sau đó tôi muốn đặt luồng đó vào aws:
gm(fileStream, "some.png").
identify({bufferStream: true}, function(err, info) {
this.stream("png", function (err, stdout, stderr) {
if (err){console.log(err);cb(err);return;}
aws.S3.putStream(path, stdout, 'public-read', {'content-length': ?????, 'content-type': 'image/png'}, function (err, result) {
.....
}
});
});
});
Vấn đề là Amazon cần phải biết chiều dài nội dung (không phải thư viện) để đặt luồng. AWS không hỗ trợ các luồng chunked.
Có ai biết cách tôi có thể xác định độ dài nội dung của luồng không? Hoặc sẽ là giải pháp duy nhất để tmp ghi nó vào đĩa, đọc các tập tin như một dòng và sau đó đặt nó vào amazon với chiều dài nội dung của tập tin tạm thời?
Bạn đã bao giờ tìm ra điều này chưa? Tôi đang cố gắng làm chính xác điều tương tự ... – Bill
Hóa đơn; Tôi đệm kết quả và nhận được kích thước của nó. Đáng buồn thay, không có cách nào khác để làm điều đó, bởi vì amazon cần phải biết kích thước và luồng là tốt - một dòng - không có chiều dài cố định. – japrescott