carj / pyPreservica

Python language binding for the Preservica API
https://pypreservica.readthedocs.io
Apache License 2.0
14 stars 2 forks source link

client.upload_zip_package -> KeyError: 'UploadId' #14

Closed mvandenhoogen-glda closed 1 year ago

mvandenhoogen-glda commented 1 year ago

Invoking client.upload_zip_package resulted in a KeyError: "UploadId".

The same code worked approx. 3 months ago with a different tenant. I already tried to update PyPreservica (1.5.x -> 1.7) and to update boto3 / s3transfer to latest versions. I also tried with slightly older versions of the Boto packages involved. In all cases I get the KeyError ('UploadId').

Is this a misconfiguration/incorrect usage or might this be a software issue?

carj commented 1 year ago

Hi This is a known issue in Preservica 6.7, the problem is the S3 multipart upload API. Its not a client side problem.

There are two workarounds you could try until a fix is released, the first is to increase the size of the package before the multipart upload code kicks in.

For example if you think your packages are less than 256MB then you could add the following before the upload.

MB = 1024 1024 upload_config().multipart_threshold = 256 MB

The other option is to upload the packages to an AWS S3 bucket first and use a auto-ingest workflow connected to the bucket.

ie. use upload_zip_package_to_S3()

carj commented 1 year ago

I have been informed that this has now been fixed and will be available in the next Preservica release.

carj commented 1 year ago

This should now be working as the systems have been upgraded to 6.9