我想使用AWS S3和Lambda实现以下方案。
用户从移动设备上拍摄照片,将描述,位置和更多属性添加为单独的元数据。将图像文件上载到S3,并将元数据作为文件内部元数据。根据{{3}}链接,我可以通过向" x-amz-meta - "添加一个键值对到ObjectMetadata来实现。作为关键。
我设法在我的S3存储桶中每次创建文件时调用lambda,但是在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);
我希望我提供了足够的信息
答案 0 :(得分:1)
AWS建议在S3上存储文件,在DynamoDB上存储文件的元数据。使用这种方法可以轻松且经济高效地执行元数据搜索。请记住,根据S3定价模型,您需要为每次API调用付费。
答案 1 :(得分:0)
您可以在上传过程中添加元数据。我使用了upload_file
,但putObject
也可以使用:
s3client.putobject(por, ExtraArgs={"Metadata":metadata})