2013-05-08 2 views
0

Я работаю с хранилищем Amazon S3 и неожиданное поведение: storage.exists() возвращает False для каталогов. Я все делаю правильно? Как я понимаю Джанго документации, он должен вернуть Истинный https://docs.djangoproject.com/en/dev/ref/files/storage/Неожиданное поведение для s3boto

from storages.backends.s3boto import S3BotoStorage 

s = S3BotoStorage(bucket='bucketname') 
s.listdir('.') 
    ([u'test_elf'], [u'327.jpg',u'avatar2.jpg']) 
s.exists(u'avatar2.jpg') 
    True 
s.exists(u'test_elf') 
    False <-- ?? 

ответ

0

s3 эмулирует только папки. Если у вас есть такая структура файлов на s3

avatar1.jpg 
avatar2.jpg 
folder -- 
      avatar3.jpg 
      avatar4.jpg 
one_more.png 
last_image.jpg 

, чем у вас есть 6 логических экземпляров на вашем ведре:

avatar1.jpg 
avatar2.jpg 
folder/avatar3.jpg 
folder/avatar4.jpg 
one_more.png 
last_image.jpg 

Я думаю, что вы можете создать «папку» файл в корневой которым будет быть несовместимым с обычной структурой файловой системы, но возможно на s3.