我刚开始向S3写几张图片。每个用户每个案例我会有4到10张图片。
User > Case > images
我的计划是在每个案例中创建一个存储桶,但是想知道我是否应该在密钥中保存带有前缀的所有图像,并在一个存储桶中包含所有情况的所有图像?
MyBucket > 2sk67o3/waiver/image1-big.jpg
MyBucket > 2sk67o3/waiver/image1-small.jpg
MyBucket > 2sk67o3/merchandise/image1-big.jpg
MyBucket > 2sk67o3/merchandise/image1-small.jpg
OR
MyBucket_2sk67o3 > waiver/image1-big.jpg
MyBucket_2sk67o3 > waiver/image1-small.jpg
MyBucket_2sk67o3 > merchandise/image1-big.jpg
MyBucket_2sk67o3 > merchandise/image1-small.jpg
我认为最后一个版本是正确的,因为我可以使用" with_prefix
" Ruby gem提供的查找图像更容易删除或替换它们?例如,要删除"弃权"当然,我会删除大图像和小图像。
bucket.objects.with_prefix('waiver').collect(&:key)
我想我可以先做第一种方式,然后搜索前缀' 2sk67o3 /商品'。那么问题仍然是更好,更容易,标准的每箱或一个巨大的桶?
答案 0 :(得分:1)
您应该使用可预测密钥的单个存储桶,以便于查找。像
这样的东西"MyBucket/waivers/#{WaverModelInstanceOrWhatever.id}/large/image_1.jpg"
"MyBucket/waivers/#{WaverModelInstanceOrWhatever.id}/small/image_1.jpg"
"MyBucket/merchandise/#{MerchandiseModelInstanceOrWhatever.id}/large/image_1.jpg"
"MyBucket/merchandise/#{MerchandiseModelInstanceOrWhatever.id}/small/image_1.jpg"