0

Meteor サーバーから API 経由でファイルをダウンロードするリクエストを送信しています。次に、そのファイルを S3 にアップロードします。「NoSuchKey: 指定されたキーは存在しません。」というメッセージが表示され続けます。最初は、AcessKey/SecretKey フォーム AWS に問題があるのではないかと考えていましたが、しばらくの間これをグーグル検索した後、他の人がこのエラーを取得した唯一の例は、S3 からファイルをダウンロードしようとしたときです。

cfs:s3 のセットアップ

var imageStore = new FS.Store.S3("images", {

  accessKeyId: "MyAcessKeyId", //required if environment variables are not set
  secretAccessKey: "MySecretAcessKey", //required if environment variables are not set
  bucket: "BucketName", //required

});

Images = new FS.Collection("images", {
  stores: [imageStore]
});

APIからファイル転送を開始し、S3にアップロード

client.get_result(id, Meteor.bindEnvironment(function(err, result){ //result is the download stream and id specifies which file to download.
  if (err !== null){
    return;
  } 
   var file = new FS.File(result);
   Images.insert(file, function (err, fileObj) {
    if (err){
      console.log(err);
    }

  });
}));

注:次のエラーが発生したため、Meteor.bindEnvironment を追加しました。 「Meteor コードは常にファイバー内で実行する必要があります。非 Meteor ライブラリに渡すコールバックを Meteor.bindEnvironment でラップしてみてください。」

API ドキュメントの Node.js の例

client.get_result(id, function(err, result){
        if (err != null) {            
            return;
        }

        file.writeFile(path.join('public', path.join('results', filename)), result, 'binary');
    });
4

1 に答える 1