You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to store a docx file in S3 and its query metadata in postgres using sqlalchemy-media. My S3 provider is not AWS. I use Minio for testing and a private cloud provider, both of which are advertised as "S3 compatible".
However, my attempts so far have failed with the following signature mismatch error:
The request signature we calculated does not match the signature you provided. Check your Secret Access Key and signing method.
It works fine if I provide an alternative store backed by the filesystem instead, so I suppose the issue has to be with the S3 store rather than the model.
fromsqlalchemy_mediaimportStoreManagerfromsqlalchemy_mediaimportS3Store, FileSystemStoredefget_s3_store():
returnS3Store(
bucket=None, # Bucket name prefixed to endpointaccess_key=my_access_key,
secret_key=my_secret_key,
region=None, # No region support, also tried with eu-west-1base_url=some_base_url,
prefix=my_bucket_name,
)
defget_fs_store():
returnFileSystemStore(
root_path="/tmp/sqlalchemy-media",
base_url="static.mydomain.com",
)
# File upload works with this setupStoreManager.register("fs", get_fs_store, default=True)
# File upload fails with this setupStoreManager.register("s3", get_s3_store, default=True)
I believe a key differentiator between the S3 implementation in sqlalchemy-media and depot is the latter uses boto3 instead of requests-aws4auth, which is no longer maintained.
Activity
[-]Signature mismatch error for S3Store with Minio[/-][+]Signature mismatch error for S3Store[/+]ghisvail commentedon Oct 31, 2019
Worth noting that a similar implementation using depot works fine.
ghisvail commentedon Oct 31, 2019
I believe a key differentiator between the S3 implementation in sqlalchemy-media and depot is the latter uses boto3 instead of requests-aws4auth, which is no longer maintained.