From e24949026717947b960dd598df179e5351a70dae Mon Sep 17 00:00:00 2001 From: alaskowski <alaskowski@ethz.ch> Date: Wed, 19 Jul 2023 10:47:49 +0200 Subject: [PATCH] SSDM-13735: Improved dataset upload performance. PyBIS 1.35.11 --- api-openbis-python3-pybis/src/python/CHANGELOG.md | 4 ++++ .../src/python/pybis/__init__.py | 2 +- api-openbis-python3-pybis/src/python/pybis/dataset.py | 11 ++++++++--- api-openbis-python3-pybis/src/python/setup.cfg | 2 +- api-openbis-python3-pybis/src/python/setup.py | 2 +- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/api-openbis-python3-pybis/src/python/CHANGELOG.md b/api-openbis-python3-pybis/src/python/CHANGELOG.md index 682a0df5180..f9a9f9fe982 100644 --- a/api-openbis-python3-pybis/src/python/CHANGELOG.md +++ b/api-openbis-python3-pybis/src/python/CHANGELOG.md @@ -1,3 +1,7 @@ +## Changes with pybis-1.35.11 + +- Improvements to dataset upload performance + ## Changes with pybis-1.35.10 - Fixed issue with changing properties for linked datasets diff --git a/api-openbis-python3-pybis/src/python/pybis/__init__.py b/api-openbis-python3-pybis/src/python/pybis/__init__.py index 5d5df0f11d7..c2b117fa519 100644 --- a/api-openbis-python3-pybis/src/python/pybis/__init__.py +++ b/api-openbis-python3-pybis/src/python/pybis/__init__.py @@ -15,7 +15,7 @@ name = "pybis" __author__ = "ID SIS • ETH Zürich" __email__ = "openbis-support@id.ethz.ch" -__version__ = "1.35.10" +__version__ = "1.35.11" from . import pybis from .pybis import DataSet diff --git a/api-openbis-python3-pybis/src/python/pybis/dataset.py b/api-openbis-python3-pybis/src/python/pybis/dataset.py index 9ba2f319b59..7b29adfc32c 100644 --- a/api-openbis-python3-pybis/src/python/pybis/dataset.py +++ b/api-openbis-python3-pybis/src/python/pybis/dataset.py @@ -1245,9 +1245,14 @@ class DataSetUploadQueue: file_size = os.path.getsize(filename) if self.multipart is True: - file = {filename: open(filename, "rb")} - resp = requests.post(upload_url, files=file, verify=verify_certificates) - resp.raise_for_status() + from requests_toolbelt.multipart.encoder import MultipartEncoder + with open(filename, "rb") as f: + m = MultipartEncoder( + fields={filename: (filename, f, 'application/octet-stream')}) + headers = {'Content-Type': m.content_type} + r = requests.post(upload_url, data=m, headers=headers, + verify=verify_certificates) + r.raise_for_status() else: # upload the file to our DSS session workspace with open(filename, "rb") as f: diff --git a/api-openbis-python3-pybis/src/python/setup.cfg b/api-openbis-python3-pybis/src/python/setup.cfg index 8c8e06e5b17..0cdcd3a74f7 100644 --- a/api-openbis-python3-pybis/src/python/setup.cfg +++ b/api-openbis-python3-pybis/src/python/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = PyBIS -version = 1.35.10 +version = 1.35.11 author = ID SIS • ETH Zürich author_email = openbis-support@id.ethz.ch license = Apache Software License Version 2.0 diff --git a/api-openbis-python3-pybis/src/python/setup.py b/api-openbis-python3-pybis/src/python/setup.py index 6bf70e05b69..8d94cd3df95 100644 --- a/api-openbis-python3-pybis/src/python/setup.py +++ b/api-openbis-python3-pybis/src/python/setup.py @@ -26,7 +26,7 @@ with open("README.md", "r", encoding="utf-8") as fh: setup( name="PyBIS", - version="1.35.10", + version="1.35.11", author="ID SIS • ETH Zürich", author_email="openbis-support@id.ethz.ch", description="openBIS connection and interaction, optimized for using with Jupyter", -- GitLab