Загрузить 0 байтовый файл в Amazon S3

Можно ли загрузить 0-байтовый файл в Amazon S3? Мой стандартный ответ был бы запрещать это, но у меня есть сайт, который хотел бы разрешить пользователям загружать пустые файлы.txt, размер которых составляет 0 байт.

Amazon возвращает неправильный XML-ответ:

<Error>
<Code>MalformedXML</Code>
<Message>The XML you provided was not well-formed or did not validate against our published schema</Message>
<RequestId>234...</RequestId>
<HostId>2309fsdijflsd...w32r09s</HostId>
</Error>

Я использую boto==2.3.0 с Flask==0.8

1 ответ

Решение

Да, это возможно.

>>> import boto
>>> c = boto.connect_s3()
>>> b = c.lookup('mybucket')
>>> k = b.new_key('empty')
>>> k.set_contents_from_string('')
>>> for k in b:
       print k.name, k.size
...
empty 0
...
>>>

По крайней мере, это работает для меня. Ошибка, которую вы получаете, предполагает, что что-то еще идет не так.

Другие вопросы по тегам