Ошибка 422: ошибки необрабатываемого объекта с Openstack python-swiftclientPython

Программы на Python
Ответить
Anonymous
 Ошибка 422: ошибки необрабатываемого объекта с Openstack python-swiftclient

Сообщение Anonymous »

Я пишу сценарий Python, используя python-swiftclient и zipfile для архивирования и загрузки файлов в конечную точку Swift API хранилища объектов Openstack. Я сохраняю заархивированные данные в памяти как объект io.BytesIO.
Фрагмент кода:

Код: Выделить всё

arc_name = 'test.zip'
zip_buffer = io.BytesIO()
with open zipfile.ZipFile(zip_buffer, "a", zipfile.ZIP_DEFLATED, True) as zip_file:
for file in files:
with open(file, 'rb') as src_file:
zip_file.writestr(arc_name, src_file.read())
...

Код: Выделить всё

zip_data = zip_buffer.getvalue()
checksum_base64 = base64.b64encode(hashlib.md5(zip_data).digest()).decode()

swift_conn = swiftclient.Connection()
container_name = 'swift-test'
swift_conn.put_object(container=container_name, contents=zip_data, content_type=None, obj=arc_name, etag=checksum_base64)
Ошибка:

Код: Выделить всё

swiftclient.exceptions.ClientException: Object PUT failed: https://..../swift/v1/swift-test/test.zip 422 Unprocessable Entity
Из других вопросов об ошибках HTTP 422 я думаю, что проблема в content_type (тип MIME). Я пробовал «application/zip» и «multipart/mixed», но всегда вижу одну и ту же ошибку.
Если другой тип MIME более подходит или Я что-то еще упустил, буду благодарен за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/792 ... wiftclient
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»