Skip to content

ObjectHashMismatchError occurred #162

@CreadDiscans

Description

@CreadDiscans

when I use minio driver, the error occured.

...
File ".../lib/python3.12/site-packages/sqlalchemy_file/types.py", line 355, in prepare_file_attr
    value.save_to_storage(upload_storage)
  File ".../lib/python3.12/site-packages/sqlalchemy_file/file.py", line 115, in save_to_storage
    stored_file = self.store_content(
                  ^^^^^^^^^^^^^^^^^^^
  File ".../lib/python3.12/site-packages/sqlalchemy_file/file.py", line 144, in store_content
    stored_file = StorageManager.save_file(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".../lib/python3.12/site-packages/sqlalchemy_file/storage.py", line 109, in save_file
    container.upload_object(
  File ".../lib/python3.12/site-packages/libcloud/storage/base.py", line 203, in upload_object
    return self.driver.upload_object(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".../lib/python3.12/site-packages/libcloud/storage/drivers/s3.py", line 594, in upload_object
    return self._put_object(
           ^^^^^^^^^^^^^^^^^
  File ".../lib/python3.12/site-packages/libcloud/storage/drivers/s3.py", line 992, in _put_object
    raise ObjectHashMismatchError(
libcloud.storage.types.ObjectHashMismatchError: <ObjectHashMismatchError in <libcloud.storage.drivers.minio.MinIOStorageDriver object at 0x7fd7d53b2180>, value=MD5 hash  checksum does not match d4c97eb1a2b1fff34b0190afbb00b4bd, object = 5221f355-8776-4758-ad76-b2c951e19dac>

in sqlalchemy_file/file.py 112 line

extra["meta_data"].update(
    {"filename": self.filename, "content_type": self.content_type}
)

the meta_data is converted to header in libcloud like
{
"x-amz-meta-filename":~~
"x-amz-meta-content_type":~~,
}

But after "x-amz-meta-", underbar is not supported in minio.
When I changed "content_type" to "content-type", It works fine.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions