2016-11-04 58 views
0

我目前有一個設置,其中音頻文件上傳到包含用戶定義的元數據的存儲桶。我的下一個目標是過濾元數據並將文件移動到不同的文件夾。目前我有一個lambda函數可以將音頻轉換爲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個音頻文件的內容並將它們從一個存儲桶移到另一個存儲桶? –

回答

2

S3拉出不提供搜索元數據的機制。

執行您只考慮使用本機S3功能的唯一方法是遍歷對象列表,併爲每個對象發送HEAD請求,但當然這對於大桶和每個對象請求收取費用,雖然它很小。

相關問題