0

ゼロ バイト ストリームに問題があります。画像のサイズを変更し、ストリームとして S3 にアップロードしています。出力を応答にパイプすると、正しく表示されます。

// Fetch remote file
var request = http.get('mybigfile.jpg', function(response) {

  // Setup IM convert
  var convert = spawn('convert', ['-', '-strip', '-thumbnail', 600, '-']);

  // Pipe file stream to it
  response.pipe(convert.stdin);

  // Pipe result to browser - works fine
  //convert.stdout.pipe(res);


  // S3 requires headers
  var headers = {
    'content-type': response.headers['content-type'],
    'x-amz-acl': 'public-read'
   };

  // Upload to S3
  var aws = aws2js.load('s3', aws.key, aws.secret);
  aws.setBucket(aws.bucket);
  aws.putStream('thumb.jpg', convert.stdout, false, headers, function(err) {
    if (err) {
      return console.error('Error storing:', err.toString());
    } else {
      // No errors - this shows - but file is 0kb
      console.log(path + ' uploaded to S3');
    }
  }

コンテンツの長さが原因でストリームが S3 で機能しないというメモが表示されます。私はバッファを試していますが、これまでのところ成功していません。

4

1 に答える 1