diff --git a/isic_cli/cli/accession.py b/isic_cli/cli/accession.py index c9c7267..0cd8788 100644 --- a/isic_cli/cli/accession.py +++ b/isic_cli/cli/accession.py @@ -1,4 +1,5 @@ import json +import mimetypes from pathlib import Path import sys @@ -41,10 +42,19 @@ def upload( s3ff_client = S3FileFieldClient(f"{DOMAINS[ctx.env]}/api/v2/s3-upload/", ctx.session) with accession.open("rb") as file_stream: + content_type = mimetypes.guess_type(accession.name)[0] + + if content_type is None: + click.secho( + f"Unable to determine content type for {accession.name}.", fg="red", err=True + ) + sys.exit(1) + field_value = s3ff_client.upload_file( - file_stream, - accession.name, - "ingest.Accession.original_blob", + file_stream=file_stream, + file_name=accession.name, + file_content_type=content_type, + field_id="ingest.Accession.original_blob", ) try: diff --git a/setup.py b/setup.py index b768c9f..18e3752 100644 --- a/setup.py +++ b/setup.py @@ -38,7 +38,7 @@ install_requires=[ # we use the path_type=Path feature from click which was added in Click 8 "click>=8", - "django-s3-file-field-client", + "django-s3-file-field-client>=1.0.0", # We expect girder-cli-oauth-client to drop oob support in the future "girder-cli-oauth-client<1.0.0", "humanize",