0
我想使用AWS S3和Lambda實施以下方案。將文件上傳到S3並觸發lambda的最佳做法
用戶拍攝來自手機的照片,將描述,位置和更多屬性添加爲單獨的元數據。使用元數據作爲文件內部元數據將圖像文件上傳到S3。根據that鏈接,我可以通過將「x-amz-meta-」作爲關鍵字添加到ObjectMetadata的鍵值對來完成。
我被設法調用lambda表達式,每次在S3存儲桶中創建一個文件,但是在來自Lambda調用方法的S3Event中,我沒有收到我在ObjectMetadata中放置的元數據。在上傳過程
代碼示例:
PutObjectRequest por = new PutObjectRequest(BUCKET_NAME, KEY_NAME, file);
ObjectMetadata metadata = new ObjectMetadata();
metadata.addUserMetadata("x-amz-meta-xxxxx", "test123");
por.setMetadata(metadata);
s3client.putObject(por);
我希望我提供足夠的信息
感謝您的回覆。不幸的是,這不能回答我的問題。使用您的解決方案,客戶端需要執行2個Rest api調用,而我正在尋求只有1個api調用的解決方案 - 將s3與附加的客戶端元數據 - 從那裏調用帶有S3Event的lambda表達式,幷包含元數據。 – Nativ
的確如此。 S3Event不包含文件元數據。你必須在lambda中調用GET(http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)或HEAD(http://docs.aws.amazon.com/AmazonS3 /latest/API/RESTObjectHEAD.html)方法來獲取元數據。 –