2015-10-13 95 views
5

ラムダ機能を使用して、バケットにアップロードされるすべてのイメージのサムネイルイメージを作成し、サムネイルを別のバケットに配置します。私は、ユーザーの画像(プロファイルPIC)をアップロードするとき、私はキーの一部としてユーザーIDを使用します。S3 Event Notificationプレフィックスにワイルドカードを使用する

System-images/users/250/john_doe.jpg

prefixパスにワイルドカードを使用する方法はありますか?これは私がこれまで持っているものですが、それは

S3 bucket properties

+0

驚異:それは内部ユーザフォルダであれば

var srcKey = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, " ")); 

チェック:

は、ソースキーを取得します。 – duhseekoh

答えて

6

いいえ、あなたはできないが動作しません - それは文字通り接頭です。あなたの例では

(あなたが一致したくない共通のプレフィックスを共有するものがある場合)、あなたはバケツにある他のものに応じて、これらのプレフィックスのいずれかを使用できます。

System-images/ 
System-images/users/ 
+0

正しいですが、代わりにサフィックスを使用し、 'jpg'、' png'、 'jpeg'のイベント通知をたくさん作成しました。ラムダ関数は、これらのファイルタイプに対してのみ起動します。 –

0

Lambdaの接頭辞/接尾辞フィルタのワイルドカードはまだサポートされていませんが、その間に部分的にフィルタリングしてから、Lambda関数内に正規表現を追加するフィルタを完成させることができます。これはまだサポートされていません

if (srcKey.indexOf('/users/') === -1) { 
    callback('Not inside users folder!'); 
    return; 
} 
+0

フォルダー構造が '1//users/name/ .json'であるため、私のワイルドカードの使用例があります。国は時間の経過とともに拡大するため、すべての国をリストアップすることはできません。スケーラビリティはありません。現在、私はあなたのソリューションを使用していますが、これはユーザとネームフォルダ内でラムダに不要なトリガを引き起こします。他の.jsonファイルもあります。 SNSを考えているが、過度の過度のことかもしれない。 – ChickenWing24

関連する問題