2017-12-07 4 views
0

방금 ​​S3에 여러 이미지를 작성하기 시작했습니다. 1 인당 케이스 당 4 ~ 10 개의 이미지가 있습니다.양동이 당 이미지를 S3에 저장하거나 루비 보석을 사용하는 유형

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 

또는

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"를 사용할 수 있습니다 올바른지? 예를 들어, "권리 포기"를 삭제하려면 크고 작은 이미지를 삭제하고 싶습니다.

bucket.objects.with_prefix('waiver').collect(&:key) 

난 그냥 위의 첫 번째 방법을, 그리고 접두사 '2sk67o3/상품'을 검색 할 수있는 것 같아요. 따라서 문제는 케이스 당 하나의 거대한 양동이 또는 하나의 거대한 양동이에 대해 더 좋고, 더 쉬우 며, 표준을 유지하고 있습니까?

답변

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" 
관련 문제