2016-11-04 6 views
0

現在、ユーザー定義のメタデータを使用してオーディオファイルをバケットにアップロードする設定があります。私の次の目標は、メタデータをフィルタリングし、ファイルを別のフォルダに移動することです。現在私はラムダmp3にオーディオを変換するラムダ関数を持っています。ですから、コードを調整してメタデータがエンコードされ、データベースにも格納されるように助けが必要です。また、特定のメタデータ値を検索し、対応するファイルを別のバケットに移動する別の関数を作成します。S3バケットのファイルをメタデータに従って検索して移動する

'use strict'; 

console.log('Loading function'); 

const aws = require('aws-sdk'); 

const s3 = new aws.S3({ apiVersion: '2006-03-01' }); 

const elastictranscoder = new aws.ElasticTranscoder(); 

// return basename without extension 
function basename(path) { 
    return path.split('/').reverse()[0].split('.')[0]; 
} 

// return output file name with timestamp and extension 
function outputKey(name, ext) { 
    return name + '-' + Date.now().toString() + '.' + ext; 
} 

exports.handler = (event, context, callback) => { 
    const bucket = event.Records[0].s3.bucket.name; 
     const key = event.Records[0].s3.object.key; 

     var params = { 
     Input: { 
      Key: key 
     }, 
     PipelineId: '1477166492757-jq7i0s', 
     Outputs: [ 
      { 
      Key: basename(key)+'.mp3', 
      PresetId: '1351620000001-300040', // mp3-128 
      } 
     ] 
     }; 

     elastictranscoder.createJob(params, function(err, data) { 
     if (err){ 
      console.log(err, err.stack); // an error occurred 
      context.fail(); 
      return; 
     } 
     context.succeed(); 
     }); 
}; 

私はまた、いくつかの研究を行って、そのメタデータがメタデータを検索するためのメカニズムを提供していません

s3.head_object(Bucket=bucket, Key=key) 
+0

実際の質問を明確にしてください。あなたの欲望(移動、検索メタデータ、ストアメタデータ、検索メタデータ)の中で、あなたは助けを求めていますか?何を試して何が起こったのですか? –

+0

明確にするために、私はオーディオファイルにメタデータを格納することができ、それを取得する方法を知っています。質問は、100種類のオーディオファイルを1つのバケットから別のバケットに移動するためのメタデータを検索するにはどうすればよいですか? –

答えて

2

S3によって引き出されることができるはずです知っています。

ネイティブS3の機能のみを使用して考えていることを実行する唯一の方法は、オブジェクトのリストを反復してオブジェクトごとにHEADリクエストを送信することですが、もちろん、これは大きなバケットとリクエストは有料ですが、小さなものです。

関連する問題