MinIO Client SDK for Python

Overview

MinIO Python SDK for Amazon S3 Compatible Cloud Storage Slack

MinIO Python SDK is Simple Storage Service (aka S3) client to perform bucket and object operations to any Amazon S3 compatible object storage service.

For a complete list of APIs and examples, please take a look at the Python Client API Reference

Minimum Requirements

Python 3.6 or higher.

Download using pip

pip3 install minio

Download source

git clone https://github.com/minio/minio-py
cd minio-py
python setup.py install

Quick Start Example - File Uploader

This example program connects to an S3-compatible object storage server, make a bucket on that server, and upload a file to the bucket.

You need the following items to connect to an S3-compatible object storage server:

Parameters Description
Endpoint URL to S3 service.
Access Key Access key (aka user ID) of an account in the S3 service.
Secret Key Secret key (aka password) of an account in the S3 service.

This example uses MinIO server playground https://play.min.io. Feel free to use this service for test and development.

file_uploader.py

from minio import Minio
from minio.error import S3Error


def main():
    # Create a client with the MinIO server playground, its access key
    # and secret key.
    client = Minio(
        "play.min.io",
        access_key="Q3AM3UQ867SPQQA43P2F",
        secret_key="zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
    )

    # Make 'asiatrip' bucket if not exist.
    found = client.bucket_exists("asiatrip")
    if not found:
        client.make_bucket("asiatrip")
    else:
        print("Bucket 'asiatrip' already exists")

    # Upload '/home/user/Photos/asiaphotos.zip' as object name
    # 'asiaphotos-2015.zip' to bucket 'asiatrip'.
    client.fput_object(
        "asiatrip", "asiaphotos-2015.zip", "/home/user/Photos/asiaphotos.zip",
    )
    print(
        "'/home/user/Photos/asiaphotos.zip' is successfully uploaded as "
        "object 'asiaphotos-2015.zip' to bucket 'asiatrip'."
    )


if __name__ == "__main__":
    try:
        main()
    except S3Error as exc:
        print("error occurred.", exc)

Run File Uploader

$ python file_uploader.py
'/home/user/Photos/asiaphotos.zip' is successfully uploaded as object 'asiaphotos-2015.zip' to bucket 'asiatrip'.

$ mc ls play/asiatrip/
[2016-06-02 18:10:29 PDT]  82KiB asiaphotos-2015.zip

More References

Explore Further

Contribute

Please refer Contributors Guide

PYPI

Comments
  • Downloads created with presigned_get_object() use internal host and only work from internal host instead of using MINIO_DOMAIN as expected

    Downloads created with presigned_get_object() use internal host and only work from internal host instead of using MINIO_DOMAIN as expected

    None of the URLs presigned_get_object() spits out for me work, I just wait forever and minio never answers the request. The thing is though, with the same client browser, client ip, the same minio instance & same proxy (no restarts in between) I can go into the minio UI and generate an URL directly in there, and that one works.

    The (shortened) URL which I get from presigned_get_object which doesn't work:

    https://files...com/479...0026-tmpupbuck/...pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=430...iyr9%2F20190507%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190507T103903Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=297...e00
    

    The (shortened) URL the UI gave me which works fine:

    https://files...com/479...0026-tmpupbuck/...pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=430...iyr9%2F20190507%2F%2Fs3%2Faws4_request&X-Amz-Date=20190507T105820Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=461...44d
    

    Is something with presigned_get_object() broken?

    Edit: I use minio as in the latest docker image of today

    working as intended priority: medium community 
    opened by ghost 38
  • minio.error.SignatureDoesNotMatch:

    minio.error.SignatureDoesNotMatch:

    Expected Behavior

    Expect the put_object method in minio/api.py to successfully load files into minio.

    Current Behavior

    We are running a script that iterates through every file (subfolders included) and pushes all of those files up to a minio bucket with the api. We are using SSE with an SSE master key, not vault. We have a total of 4 buckets and hence plan to run the script 4 times from each folder on local HDD. We manged to get through 67GB upload before it failed

    $ python /group/transfer/minio_push.py Traceback (most recent call last): File "/group/transfer/minio_push.py", line 60, in minioClient.put_object(bucket_name, pathfile, file_data, file_stat.st_size) File "/usr/lib/python2.7/site-packages/minio/api.py", line 878, in put_object progress=progress) File "/usr/lib/python2.7/site-packages/minio/api.py", line 1602, in _do_put_object content_sha256=sha256_hex File "/usr/lib/python2.7/site-packages/minio/api.py", line 1952, in _url_open object_name).get_exception() minio.error.SignatureDoesNotMatch: SignatureDoesNotMatch: message: The request signature we calculated does not match the signature you provided.

    Steps to Reproduce (for bugs)

    Not sure how to reproduce at the moment, we are attempting to reproduce on the objects it failed. We're not sure how/why it loaded 67GB of files out of 275GB for one bucket and then threw this error.

    Context

    We are attempting to load ~2.5TB of data into minio for our project

    Your Environment

    • Version used (minio version): latest version of minio-py
    • Environment name and version (e.g. nginx 1.9.1): minio is running as a docker container with following release: minio:RELEASE.2019-06-01T03-46-14Z (we plan to update this
    • Server type and version: RHEL 7.6 w/ Docker EE
    • Link to your project: our project is not public
    priority: medium community 
    opened by petersedivec 22
  • AttributeError: 'NoneType' object has no attribute 'read'

    AttributeError: 'NoneType' object has no attribute 'read'

    Traceback (most recent call last):
      File "/home/prerender/venv/lib/python3.6/site-packages/prerender/app.py", line 129, in handle_request
        data = await cache.get(url, format)
      File "/usr/lib/python3.6/asyncio/coroutines.py", line 128, in throw
        return self.gen.throw(type, value, traceback)
      File "/home/prerender/venv/lib/python3.6/site-packages/prerender/cache/s3.py", line 47, in get
        res = await loop.run_in_executor(None, self.client.get_object, S3_BUCKET, path)
      File "/usr/lib/python3.6/concurrent/futures/thread.py", line 55, in run
        result = self.fn(*self.args, **self.kwargs)
      File "/home/prerender/venv/lib/python3.6/site-packages/minio/api.py", line 781, in get_object
        object_name)
      File "/home/prerender/venv/lib/python3.6/site-packages/minio/api.py", line 1486, in _get_partial_object
        preload_content=False)
      File "/home/prerender/venv/lib/python3.6/site-packages/minio/api.py", line 1900, in _url_open
        object_name).get_exception()
      File "/home/prerender/venv/lib/python3.6/site-packages/minio/error.py", line 141, in __init__
        self._handle_error_response(bucket_name)
      File "/home/prerender/venv/lib/python3.6/site-packages/minio/error.py", line 161, in _handle_error_response
        if not self._response.data:
      File "/home/prerender/venv/lib/python3.6/site-packages/urllib3/response.py", line 188, in data
        return self.read(cache_content=True)
      File "/home/prerender/venv/lib/python3.6/site-packages/urllib3/response.py", line 380, in read
        data = self._fp.read()
      File "/usr/lib/python3.6/http/client.py", line 456, in read
        return self._readall_chunked()
      File "/usr/lib/python3.6/http/client.py", line 566, in _readall_chunked
        value.append(self._safe_read(chunk_left))
      File "/usr/lib/python3.6/http/client.py", line 612, in _safe_read
        chunk = self.fp.read(min(amt, MAXAMOUNT))
    AttributeError: 'NoneType' object has no attribute 'read'
    

    When error occurs, access self._response.data in ResponseError._handle_error_response may result in another exception.

    working as intended priority: high 
    opened by messense 21
  • [not our bug] Receiving Bad Request when calling MINIO Server from minio/api.py (

    [not our bug] Receiving Bad Request when calling MINIO Server from minio/api.py (

    Hello.

    I am working with @vsoch on an SREGISTRY integration that uses MINIO for the storage backend with HTTPS/SSL enabled.

    The environment (for testing/development) is a couple containers on a single host and looks like this:

    Where the GREEN Container is our running instance of MINIO and the Two containers in purple are our MINIO clients that implement / instantiate two instances of MinioClient on startup (as i will outline below)

    image

    A bit about our minio installation

    Here is the docker-compose that is in use - you can see we consuming the .mino-env on startup

    • we also have done the appropriate SSL certificate (with the .PEM consisting our of cert+intermediate and the key the key)
    • "know" this works, since we can see the following when we do a a simple "curl" from linux (since a browser test might be helped by baked in intermediates) we get the following (i have redacted some of our personal info)

    image

    image

    When we login to the MINIO Web UI, we can see the following:

    • we see that SSL/HTTP is working (Browser wise) (UI-pic1 below)
    • we are able to see that we can create new Containers and they are written back down the backing filesystem (UI-pic2-1, UI-PIC2-2, and TERM-SHOT-1 of the filesystem after i created)

    UI-PIC-1 image

    UI-PIC-2-1 image

    UI-PIC-2-2 image

    TERM-SHOT-1 image

    As well, here is the "mc config ls" output to show our setup defined

    MC-LS-1

    image

    So we are pretty sure that the HTTPS action to/from MINIO is 'ok" from a certificate point of view.

    In the SREGISTRY instantion of the two minio clients, we have the following code bit (and this is where we are seeing the "BadRequest failure " - note that we create two clients, one for External Access - which is HTTPS://ourfdqn as shown and there is another that is to use the internal link - minio - which would resolve on the docker "links" (we are not using a seperate brigde as docker in the docker compose above to link the client containers to the minio container). the idea being that the sregistries are trusted and thus would not implement https. However, it seems that with the secure=TRUE/FALSE, flag we end up in a situation where minio is bringing up a endpoint called https://127.0.0.1:9000.

    [root@grid-singregistry-master sregistry]# docker logs -f 401a3d72a310 Attempting rotation of encrypted config, IAM users and policies on MinIO with newly supplied credentials Rotation complete, please make sure to unset MINIO_ACCESS_KEY_OLD and MINIO_SECRET_KEY_OLD envs Endpoint: https://172.17.0.4:9000 https://127.0.0.1:9000

    The issue here is that for me to "make this work" i would need to put a SAN in our cert for 127.0.0.1.

    CLIENT-CODE-SNIP-1

    image

    CLIENT-STACK-TRACE-1

    image

    From what i have understood, is that when we instantiate the minioClient call( either the internal or the External one) there is a connection, so im a bit stumped as to why this is failed with BadRequest on the if not makebucket command.

    You will notice above that the exception shows a minioExternalClient call, that is from me trying both types of clients to see if there is anything instantiated.

    I did a TCPDUMP on port 9000 on the NIC that hold the docker bridge and container traffic and no request on port 9000 ever arrived during any startup, so i suspect that the instantiation is failing of the client, but im not sure how to further in minio.py figure out if its cause of a SSL/non SSL mix up (our idea is that all communications shall be over HTTPS (internal or external as we start to distribute it).

    Perhaps a silly configuration i am missing with the secure flag for the clients?

    Any help would be much appreciated. D

    community not our bug 
    opened by lmcdasm 20
  • add support for AssumeRole provider

    add support for AssumeRole provider

    This PR adds a assume_role api to mino-py allowing users to generate temporary credentials using the AssumeRole STS API. It has to modify how signatures are generated to allow signing requests for other services e.g., "sts".

    I'm assuming the functional python API should be replaced - but let me know.

    Further discussion original feature request in #871.

    Server side API documentation:

    • https://github.com/minio/minio/blob/master/docs/sts/assume-role.md
    • https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
    opened by hardbyte 19
  • list_buckets() and list_objects() returning empty list/empty generator on Huawei-Openstack in OpenTelecomCloud

    list_buckets() and list_objects() returning empty list/empty generator on Huawei-Openstack in OpenTelecomCloud

    Dear all,

    when using list_buckets() or list_objects() on an account/bucket in OpenTelecomCloud, the result is an empty list, allthough there are buckets/objects in that account. Using the minio-client (on Windows or Linux), returns the correct results. See below code for accessing the account:

    s3_client = Minio(endpoint=s3_endpoint,
                      access_key=s3_accesskey,
                      secret_key=s3_secretkey,
                      region=s3_region,
                      secure=s3_secure)
    the_bucket = s3_bucket
    list_buckets = s3_client.list_buckets()  #Returns empty list
    is_bucket = s3_client.bucket_exists(the_bucket)  #Returns True
    list_objects = s3_client.list_objects(the_bucket)  #Returns empty generator object
    [print(obj.object_name) for obj in list_objects]  #Throws the error below
    

    Error-Message:

    Traceback (most recent call last): File "C:\OSGEO4~2\apps\Python37\lib\site-packages\minio\parsers.py", line 104, in get_child_text return self.element.find('s3:{}'.format(name), _S3_NS).text AttributeError: 'NoneType' object has no attribute 'text'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm\helpers\pydev\pydevd.py", line 1741, in main() File "C:\Program Files\JetBrains\PyCharm\helpers\pydev\pydevd.py", line 1735, in main globals = debugger.run(setup['file'], None, None, is_module) File "C:\Program Files\JetBrains\PyCharm\helpers\pydev\pydevd.py", line 1135, in run pydev_imports.execfile(file, globals, locals) # execute the script File "C:\Program Files\JetBrains\PyCharm\helpers\pydev_pydev_imps_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "D:/Users/BRISOE/PyCharm/MUC/hrl_2018/sobr_playground/minio_otc.py", line 19, in [print(obj.object_name) for obj in list_objects] File "D:/Users/BRISOE/PyCharm/MUC/hrl_2018/sobr_playground/minio_otc.py", line 19, in [print(obj.object_name) for obj in list_objects] File "C:\OSGEO4~2\apps\Python37\lib\site-packages\minio\api.py", line 946, in list_objects bucket_name=bucket_name) File "C:\OSGEO4~2\apps\Python37\lib\site-packages\minio\parsers.py", line 238, in parse_list_objects is_truncated = root.get_child_text('IsTruncated').lower() == 'true' File "C:\OSGEO4~2\apps\Python37\lib\site-packages\minio\parsers.py", line 108, in get_child_text 'Message: {}').format(self.root_name, name, error.message) AttributeError: 'AttributeError' object has no attribute 'message'

    Thanks in advance and Best Regards Sören

    opened by brisoe 17
  • Unable to perform the direct video streaming using get_presigned_url() when the object placed inside the folder

    Unable to perform the direct video streaming using get_presigned_url() when the object placed inside the folder

    We are unable to stream the video object which is stored inside the folder, but I am able to download the video object and play it from my local computer.

    bucket_name = "mybucket"
    file_path = "/Users/name/Downloads/video1.mp4"
    object_name = "videos/video1.mp4"
    
    client.fput_object(bucket_name, object_name, file_path)
    
    url = client.get_presigned_url(
            "GET",
            bucket_name,
            object_name)
    
    print(url)
    

    if the object_name is just video1.mp4 then I am able to play the video url from the following link otherwise, if we place the object like ('videos/video1.mp4'), then it is not playing

    https://cuttopoint.com/player.html

    opened by Udayaprasad 15
  • Python admin api

    Python admin api

    Hi, is it possible to access the admin api via the python package? I don't find it in the documetation neither the code (probbably not looking in the right place).

    I'm trying to write an app that uses minio. The users, groups and policies will be managed from there. I know I can do it using minio client, but it'd be nice to handle everything from the api itself

    If there is no way to do it from the minio-py package, the admin api is documented anywhere? I could only find the mc

    Thanks for the work dedicated to this package btw!

    opened by ruiztulio 15
  • AttributeError: 'PartMetadata' object has no attribute 'md5hasher'

    AttributeError: 'PartMetadata' object has no attribute 'md5hasher'

    In latest 2.2.3 I get this error:

    File "/home/vagrant/.virtualenvs/web/local/lib/python2.7/site-packages/django/db/models/fields/files.py", line 93, in save self.name = self.storage.save(name, content, max_length=self.field.max_length) File "/home/vagrant/.virtualenvs/web/local/lib/python2.7/site-packages/django/core/files/storage.py", line 63, in save name = self._save(name, content) File "/home/vagrant/.virtualenvs/web/local/lib/python2.7/site-packages/minio_storage/storage.py", line 102, in _save content_type) File "/home/vagrant/.virtualenvs/web/local/lib/python2.7/site-packages/minio/api.py", line 897, in put_object data, length, metadata=metadata) File "/home/vagrant/.virtualenvs/web/local/lib/python2.7/site-packages/minio/api.py", line 1665, in _stream_put_object md5_hex = part_metadata.md5hasher.hexdigest() AttributeError: 'PartMetadata' object has no attribute 'md5hasher'

    fixed priority: medium 
    opened by Yurmusp 14
  • is_valid_endpoint(endpoint)

    is_valid_endpoint(endpoint)

    Just want to clarify with the function as shown in title. Python version: 3.7.6 Minio version: 5.0.5

    ipaddr = '43.74.4.35:9000', my server ip address

    mio = Minio(ipaddr, access_key=id,secret_key=pass,secure=False) mio.fput_object(bucketname,filename,pathtofile)

    returns error InvalidEndpointError:message: Hostname cannot have a scheme.

    I did some digging and when send through the is_valid_endpoint(endpoint) function it will return:- scheme: urlsplit(endpoint)[0] is 43.74.4.35 netloc: urlsplit(endpoint)[1] is empty path: urlsplit(endpoint)[2] is 9000 query: urlsplit(endpoint)[3] is empty fragment: urlsplit(endpoint)[4] is empty

    I think the urlsplit is recognizing the ip address as scheme because it is before the ':'

    Is it a bug or it is just my environment? I just pip install minio.

    EDIT:

    i remove the port from ip address ipaddr = '43.74.4.35' but it return error ResponseError: code: , message: , bucket_name: broadcast, object_name: None, request_id: , host_id: , region:

    priority: medium community 
    opened by AthrunIJ 13
  • Fails when secure=False: FoldCaseDict instance has no attribute 'copy'

    Fails when secure=False: FoldCaseDict instance has no attribute 'copy'

    Here's a traceback:

      File "minio/api.py", line 958, in list_objects
        headers=headers)
      File "minio/api.py", line 1845, in _url_open
        preload_content=preload_content)
      File "urllib3/poolmanager.py", line 161, in urlopen
        response = conn.urlopen(method, u.request_uri, **kw)
      File "urllib3/connectionpool.py", line 538, in urlopen
        headers = headers.copy()
    AttributeError: FoldCaseDict instance has no attribute 'copy'
    

    I'm using urllib3 that comes bundled with requests version 2.8.1. I wasn't sure the right way to handle this since minio also wants to import urllib3 directly, so made a symlink: ln -s requests/packages/urllib3 . This is for a static build of HashBackup.

    opened by hashbackup 13
  • Clarification for docs on `remove_objects()` API

    Clarification for docs on `remove_objects()` API

    https://github.com/minio/minio-py/blob/master/docs/API.md?plain=1#L1473-L1475

    As per internal discussion, it's not clear that this API is "lazy" in that it only fires if the user iterates the returned errors.

    It also opens a few questions up:

    • If there are no errors, does the command still require iterating the empty return array to fire?
    • If there are some errors, does the API partially execute up until it hits the first error?
    • Is there a way to direct the API to continue on error?

    Based on that we should update the docs for this API or any others which require iterating the response to fire (e.g. "lazy API")

    pending discussion priority: medium 
    opened by ravindk89 2
  • No way to set fetch_owner from list_objects

    No way to set fetch_owner from list_objects

    There is no way to specify fetch_owner=True from list_objects

    _list_objects supports it, but it is never called with that as a parameter (only usage of that function I can find is here: https://github.com/minio/minio-py/blob/master/minio/api.py#L1820)

    opened by dmosesson 4
  • Add python 3.11 support

    Add python 3.11 support

    The core dependencies used by this package seem to be running with Python version 3.11 (more checks might be due). This is an attempt to bump the test matrix and fix a warning regarding the deprecation of HTTPResponse.getheader() Here the warning I was getting:

    DeprecationWarning: HTTPResponse.getheader() is deprecated and will be removed in urllib3 v2.1.0. Instead use HTTResponse.headers.get(name, default).
    

    Here my environment: MacOS 13.0.1 (M1 chip), Anaconda Python version 3.11 and here the result of pip list

    Package           Version
    ----------------- ---------
    astroid           2.12.13
    attrs             22.1.0
    autopep8          2.0.1
    certifi           2022.12.7
    dill              0.3.6
    iniconfig         1.1.1
    isort             5.11.3
    lazy-object-proxy 1.8.0
    mccabe            0.7.0
    packaging         22.0
    pip               22.3.1
    platformdirs      2.6.0
    pluggy            1.0.0
    pycodestyle       2.10.0
    pylint            2.15.9
    pytest            7.2.0
    setuptools        65.6.3
    tomlkit           0.11.6
    urllib3           1.26.13
    wheel             0.38.4
    wrapt             1.14.1
    
    opened by fedepad 5
  • This  minio python api:<remove_objects> has a bug

    This minio python api: has a bug

    Bug from mino/deleteobjects.py The code below:

    class DeleteObject: """Delete object request information."""

    def __init__(self, name, version_id=None):
        self._name = name
        self._version_id = version_id
    
    def toxml(self, element):
        """Convert to XML."""
        element = SubElement(element, "Object")
        SubElement(element, "Key", self._name)
        if self._version_id is not None:
            SubElement(element, "VersionId", self._version_id)
        return element
    

    class DeleteRequest: """Delete object request."""

    def __init__(self, object_list, quiet=False):
        self._object_list = object_list
        self._quiet = quiet
    
    def toxml(self, element):
        """Convert to XML."""
        element = Element("Delete")
        if self._quiet:
            SubElement(element, "Quiet", "true")
        for obj in self._object_list:
           
            **obj.toxml(element)**  #_'str' object has no attribute 'toxml', I think you should have forgotten to call this DeleteObject_
            # new_obj = DeleteObject(obj)
            # new_obj.toxml(element)
        return element
    
    community triage 
    opened by Liangzijiangit 1
  • [feature request] newer minio server has a new http endpoint PutObjectExtract, please add a new function for this new feature

    [feature request] newer minio server has a new http endpoint PutObjectExtract, please add a new function for this new feature

    • newer minio server has a new http endpoint PutObjectExtract
    • when i look at the python minio.Minio class it only has put_object
    • please add a new function for the newer PutObjectExtract feature
    • maybe make a new function called put_object_extract
    opened by trevorboydsmith 0
  • put_object stalls when connection to server is lost

    put_object stalls when connection to server is lost

    I am running a Minio server and client on two machines. When uploading a (large) file to the bucket and the client loses connection with the server, the thread stalls without throwing an error.

    My Minio is configured as follows:

    Minio(
        endpoint=..some adress..,
        access_key=..minio access key..,
        secret_key=..minio secret key..,
        secure=False,
        http_client=PoolManager(
            timeout=20,
            maxsize=10,
            cert_reqs='CERT_REQUIRED',
            ca_certs=..certificates..,
            retries=urllib3.Retry(
                total=2,
                respect_retry_after_header=False,
            )
        )
    )
    

    After the upload, I disconnect the Minio server and get urllib3.connectionpool Retry warnings (expected), but they conclude in the program stalling.

    urllib3.connectionpool - WARNING - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at ...>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it')'
    

    The issue is that the _tasks_queue in the ThreadPool class is not configured to timeout. The program stalls on task = self._tasks_queue.get() when the Queue keeps waiting without returning or throwing an error.

    I couldn't find a way to configure a timeout for get or verify that the connection is active, so an error is thrown when it is not.

    opened by tea-more 0
Releases(7.1.12)
  • 7.1.12(Sep 28, 2022)

    What's Changed

    • fix documentation display composing by @j13tw in https://github.com/minio/minio-py/pull/1231
    • fget_object(): add progress support by @moon-jong in https://github.com/minio/minio-py/pull/1235
    • Updating documentation links to new URLs by @djwfyi in https://github.com/minio/minio-py/pull/1239
    • list_objects: fix parsing user metadata as per MinIO server by @harshavardhana in https://github.com/minio/minio-py/pull/1240

    New Contributors

    • @j13tw made their first contribution in https://github.com/minio/minio-py/pull/1231
    • @moon-jong made their first contribution in https://github.com/minio/minio-py/pull/1235
    • @djwfyi made their first contribution in https://github.com/minio/minio-py/pull/1239

    Full Changelog: https://github.com/minio/minio-py/compare/7.1.11...7.1.12

    Source code(tar.gz)
    Source code(zip)
  • 7.1.11(Jul 25, 2022)

    What's Changed

    • select: yield available payload fully by requested num_bytes by @kldtz in https://github.com/minio/minio-py/pull/1225

    New Contributors

    • @kldtz made their first contribution in https://github.com/minio/minio-py/pull/1225

    Full Changelog: https://github.com/minio/minio-py/compare/7.1.10...7.1.11

    Source code(tar.gz)
    Source code(zip)
  • 7.1.10(Jul 9, 2022)

    What's Changed

    • fget_object(): remove resume support. by @balamurugana in https://github.com/minio/minio-py/pull/1215
    • fix lifecycle config rule validation by @balamurugana in https://github.com/minio/minio-py/pull/1217
    • error out if lifecycle rule has null filter by @balamurugana in https://github.com/minio/minio-py/pull/1219
    • EventIterable: Reconnect on closed response. by @balamurugana in https://github.com/minio/minio-py/pull/1222

    Full Changelog: https://github.com/minio/minio-py/compare/7.1.9...7.1.10

    Source code(tar.gz)
    Source code(zip)
  • 7.1.9(Jun 11, 2022)

    What's Changed

    • allow hashlib.md5() calls to work with FIPS kernels by @BOPOHA in https://github.com/minio/minio-py/pull/1200
    • Handle 304 status code properly by @balamurugana in https://github.com/minio/minio-py/pull/1202
    • correct ValueError when part_size > MAX_PART_SIZE by @ernestang98 in https://github.com/minio/minio-py/pull/1205
    • Set minimum requirement to Python v3.7 by @balamurugana in https://github.com/minio/minio-py/pull/1209

    New Contributors

    • @BOPOHA made their first contribution in https://github.com/minio/minio-py/pull/1200
    • @ernestang98 made their first contribution in https://github.com/minio/minio-py/pull/1205

    Full Changelog: https://github.com/minio/minio-py/compare/7.1.8...7.1.9

    Source code(tar.gz)
    Source code(zip)
  • 7.1.8(May 5, 2022)

    What's Changed

    • fix make version-id dictionary instead of set by @balamurugana in https://github.com/minio/minio-py/pull/1197

    Full Changelog: https://github.com/minio/minio-py/compare/7.1.7...7.1.8

    Source code(tar.gz)
    Source code(zip)
  • 7.1.7(Apr 19, 2022)

    What's Changed

    • fix converting boolean value to XML boolean. by @balamurugana in https://github.com/minio/minio-py/pull/1186
    • fix: listen bucket event response should use response.readline() by @harshavardhana in https://github.com/minio/minio-py/pull/1195

    Full Changelog: https://github.com/minio/minio-py/compare/7.1.6...7.1.7

    Source code(tar.gz)
    Source code(zip)
  • 7.1.6(Apr 9, 2022)

    What's Changed

    • Add reduce() method to errors for pickle compatible. by @balamurugana in https://github.com/minio/minio-py/pull/1190
    • use unittest.mock instead of mock by @pgajdos in https://github.com/minio/minio-py/pull/1188

    New Contributors

    • @pgajdos made their first contribution in https://github.com/minio/minio-py/pull/1188

    Full Changelog: https://github.com/minio/minio-py/compare/7.1.5...7.1.6

    Source code(tar.gz)
    Source code(zip)
  • 7.1.5(Mar 11, 2022)

    What's Changed

    • Add AssumeRoleWithCertificate credential provider. by @balamurugana in https://github.com/minio/minio-py/pull/1182

    Full Changelog: https://github.com/minio/minio-py/compare/7.1.4...7.1.5

    Source code(tar.gz)
    Source code(zip)
  • 7.1.4(Feb 27, 2022)

    What's Changed

    • docs: fix typo in object_lock config function name by @harshavardhana in https://github.com/minio/minio-py/pull/1176
    • fix progress bar division by zero error by @harshavardhana in https://github.com/minio/minio-py/pull/1177
    • Add policy unset method to minio admin by @federicober in https://github.com/minio/minio-py/pull/1180
    • fix: lint checks and enable MINIO_CI_CD=1 for functional tests by @harshavardhana in https://github.com/minio/minio-py/pull/1181

    New Contributors

    • @federicober made their first contribution in https://github.com/minio/minio-py/pull/1180

    Full Changelog: https://github.com/minio/minio-py/compare/7.1.3...7.1.4

    Source code(tar.gz)
    Source code(zip)
  • 7.1.3(Feb 2, 2022)

    What's Changed

    • Update set_object_lock_config.py by @anooptp in https://github.com/minio/minio-py/pull/1170
    • fix finding user's home directory in AWSConfigProvider/MinioClientConfigProvider by @nfioraio-ec in https://github.com/minio/minio-py/pull/1175
    • fix EnvAWSProvider/EnvMinioProvider to fetch access/secret keys and session token always from os.environ by @nfioraio-ec in https://github.com/minio/minio-py/pull/1174

    New Contributors

    • @anooptp made their first contribution in https://github.com/minio/minio-py/pull/1170
    • @nfioraio-ec made their first contribution in https://github.com/minio/minio-py/pull/1175

    Full Changelog: https://github.com/minio/minio-py/compare/7.1.2...7.1.3

    Source code(tar.gz)
    Source code(zip)
  • 7.1.2(Nov 29, 2021)

    Changelog

    • fix: do not enforce role value for replicationConfig (#1166) (11/24/21) (Harshavardhana)
    • fix: canonical request path if empty choose '/' (#1165) (11/24/21) (Harshavardhana)
    Source code(tar.gz)
    Source code(zip)
  • 7.1.1(Oct 8, 2021)

    Changelog

    • Fix transition xml name in lifecycleconfig (#1142) (10/09/21) (Bala FA)
    • Remove nose tests and move to python unittest (#1152) (10/09/21) (Steve Kowalik)
    • Use unquote_plus() to decode url encoded value. (#1158) (10/09/21) (Bala FA)
    • Ignore cert addition if custom httpclient is passed (#1157) (10/08/21) (Anton Samokhvalov)
    • use f-string wherever possible (#1155) (10/08/21) (Bala FA)
    • Raise ValueError instead of returning in ChainedProvider (#1146) (09/01/21) (Bala FA)
    Source code(tar.gz)
    Source code(zip)
  • 7.1.0(Jul 8, 2021)

    Highlights

    • Minor version bumped for behavior change in listen_bucket_notification() implementation refer #1118, #1126

    Changelog

    • EventIterable: use looping instead of tail recursion in next() (#1126) (07/07/21) (Bala FA)
    • fix pylint errors (#1121) (07/01/21) (Bala FA)
    • list_objects(): add url encoding type support. (#1107) (06/29/21) (Bala FA)
    • docs: add anchor for get_presigned_url method in API docs (#1109) (06/28/21) (Harman Singh)
    • listen_bucket_notification(): return EventIterable object as controlled iterator. (#1118) (06/25/21) (Bala FA)
    Source code(tar.gz)
    Source code(zip)
  • 7.0.4(Jun 13, 2021)

    Changelog

    • fix: pylint build issues in minio-py (#1111) (06/07/21) (Harshavardhana)
    • allow setting custom environment variables for mc admin subprocess (#1100) (05/24/21) (cbows)
    • fix error when mc admin response has a trailing newline (#1099) (05/24/21) (cbows)
    • Bucket: add string representation and equality method (#1095) (05/24/21) (Bahram Aghaei)
    • list_objects(): identify delete marker generically (#1106) (05/24/21) (Bala FA)
    Source code(tar.gz)
    Source code(zip)
  • 7.0.3(Apr 6, 2021)

    Changelog

    • make_bucket: use region passed via constructor (#1103) (03/29/21) (Bala FA)
    • Add compression type in XML of Input Serialization (#1092) (03/25/21) (Bala FA)
    • Add non-empty filter rule check in Lifecycle configuration. (#1094) (03/25/21) (Bala FA)
    • fix user metadata query parameter in list_objects() (#1098) (03/20/21) (Bala FA)
    • fix Minio constructor documentation (#1087) (03/14/21) (Bala FA)
    • Add new mc config format support in MinioClientConfigProvider (#1090) (03/11/21) (Dimitri Igdalov)
    • fix pytest warning error (#1088) (03/02/21) (Gromil)
    • Optimize logic of read_part_data() (#1085) (02/21/21) (Bala FA)
    • Fix divided by zero error at part info computation. (#1083) (02/18/21) (Bala FA)
    Source code(tar.gz)
    Source code(zip)
  • 7.0.2(Feb 12, 2021)

    Highlights

    • MinIO admin API support. See (#1076) for more details.

    Changelog

    • Add MinIO admin API support. (#1076) (02/12/21) (Bala FA)
    • Convert timedelta.total_seconds() to integer in credential providers. (#1081) (02/12/21) (Brian Thorne)
    • Update fget_object() API documentation (#1075) (02/01/21) (Bala FA)
    • fix data argument description of put_object() API (#1071) (01/29/21) (Bala FA)
    • fix getbytes() usage in make_bucket() API (#1073) (01/29/21) (Bala FA)
    • fix Retention properties usage (#1066) (01/27/21) (Bala FA)
    • fix Tagging.tags usage properly (#1061) (01/27/21) (Bala FA)
    • Add default 5 minutes timeout to default http client (#1069) (01/25/21) (Bala FA)
    • fix docstring and error handling in _validate_size() (#1063) (01/19/21) (Mykola Mokhnach)
    • Enhance HTTP trace (#1056) (01/09/21) (Bala FA)
    Source code(tar.gz)
    Source code(zip)
  • 7.0.1(Jan 5, 2021)

    Changelog

    • fix XML construction in Tagging (#1054) (01/05/21) (Bala FA)
    • Allow empty prefix in Filter (#1053) (01/05/21) (Bala FA)
    • fix: bring back previous change to functional test script (#1045) (12/10/20) (Harshavardhana)
    • Remove configparser as dependency (#1046) (12/10/20) (Bala FA)
    • remove double reference for the constructor (12/08/20) (Minio Trusted)
    Source code(tar.gz)
    Source code(zip)
  • 7.0.0(Dec 8, 2020)

    Highlights

    • Python2 support has been removed.
    • Added support for S3 APIs related to object locking and versioning, tagging.
    • Added support for compose object.
    • Lots of APIs and functions have been refactored.

    Changelog

    • fix: running functional tests issues (12/08/20) (Minio Trusted)
    • Makefile: add tests target (#1044) (12/09/20) (Bala FA)
    • Fix examples and documentations (#1038) (12/08/20) (Bala FA)
    • fix setup.py to use same process for publish (#1043) (12/07/20) (Bala FA)
    • Tidy up github CI scripts (#1041) (12/07/20) (Bala FA)
    • Tidy up Makefile, minio/init.py and setup.py (#1039) (12/05/20) (Bala FA)
    • Enhance put_object() API to support more parameters (#1022) (12/04/20) (Bala FA)
    • Rename presigned_url() to get_presigned_url() (#1032) (12/03/20) (Bala FA)
    • Simplify select_object_content() response stream (#1018) (12/02/20) (Bala FA)
    • Add compose_object() and enhance copy_object() APIs (#1021) (12/02/20) (Bala FA)
    • Refactor PostPolicy implementation (#1023) (12/01/20) (Bala FA)
    • fix: allow tests to run properly on gateway setups (#1034) (11/28/20) (Harshavardhana)
    • error.code() is a property not function (11/28/20) (Harshavardhana)
    • ignore NoSuchVersion returned in remove_objects (#1033) (11/28/20) (Harshavardhana)
    • Merge thread_pool.py into helpers.py (#1024) (11/25/20) (Bala FA)
    • Handle locale-safe time formats (#1020) (11/24/20) (Bala FA)
    • fix client grants provider example (#1027) (11/24/20) (Bala FA)
    • Make code property check optional in IamAwsProvider (#1025) (11/24/20) (Bala F:...skipping...
    • Update version to next release (12/08/20) (Minio Trusted)
    • fix: running functional tests issues (12/08/20) (Minio Trusted)
    • Makefile: add tests target (#1044) (12/09/20) (Bala FA)
    • Fix examples and documentations (#1038) (12/08/20) (Bala FA)
    • fix setup.py to use same process for publish (#1043) (12/07/20) (Bala FA)
    • Tidy up github CI scripts (#1041) (12/07/20) (Bala FA)
    • Tidy up Makefile, minio/init.py and setup.py (#1039) (12/05/20) (Bala FA)
    • Enhance put_object() API to support more parameters (#1022) (12/04/20) (Bala FA)
    • Rename presigned_url() to get_presigned_url() (#1032) (12/03/20) (Bala FA)
    • Simplify select_object_content() response stream (#1018) (12/02/20) (Bala FA)
    • Add compose_object() and enhance copy_object() APIs (#1021) (12/02/20) (Bala FA)
    • Refactor PostPolicy implementation (#1023) (12/01/20) (Bala FA)
    • fix: allow tests to run properly on gateway setups (#1034) (11/28/20) (Harshavardhana)
    • error.code() is a property not function (11/28/20) (Harshavardhana)
    • ignore NoSuchVersion returned in remove_objects (#1033) (11/28/20) (Harshavardhana)
    • Merge thread_pool.py into helpers.py (#1024) (11/25/20) (Bala FA)
    • Handle locale-safe time formats (#1020) (11/24/20) (Bala FA)
    • fix client grants provider example (#1027) (11/24/20) (Bala FA)
    • Make code property check optional in IamAwsProvider (#1025) (11/24/20) (Bala FA)
    • fix examples of {fget,get,stat}_object() APIs (#1028) (11/23/20) (Bala FA)
    • Merge definitions.py into helpers.py (#1017) (11/11/20) (Bala FA)
    • Normalize user metadata in request headers properly (#1016) (11/11/20) (Bala FA)
    • Handle response XML inside S3Error class (#1015) (11/11/20) (Bala FA)
    • Handle response XML inside _create_multipart_upload() API (#1009) (11/10/20) (Bala FA)
    • Refactor XML handling of _list_multipart_uploads() API (#1011) (11/09/20) (Bala FA)
    • Update return type in put_object() and copy_object() API (#1012) (11/09/20) (Bala FA)
    • Refactor XML handling of _list_parts() API (#1008) (11/09/20) (Bala FA)
    • Refactor XML handling of _complete_multipart_upload() API (#1010) (11/05/20) (Bala FA)
    • add {set,get}_object_retention() APIs (#986) (10/23/20) (Bala FA)
    • Refactor XML handling of {set,get,delete}_bucket_encryption APIs (#991) (10/23/20) (Bala FA)
    • add {set,get,delete}_object_lock_config APIs (#985) (10/21/20) (Bala FA)
    • fix unit test filenames (#1007) (10/20/20) (Bala FA)
    • Refactor XML handling of {set,get,delete}_bucket_notification APIs (#990) (10/20/20) (Bala FA)
    • add {enable,disable,is}_object_legal_hold[_enabled] APIs (#987) (10/19/20) (Bala FA)
    • Refactor XML handling of remove_objects() API (#995) (10/19/20) (Bala FA)
    • Refactor XML handling of _list_objects() (#997) (10/19/20) (Bala FA)
    • Refactor response XML handling of ListBuckets S3 API (#989) (10/19/20) (Bala FA)
    • Refactor XML handling of _complete_multipart_upload() API (#994) (10/19/20) (Bala FA)
    • fix STS endpoint construction in IamAwsProvider (#1001) (10/20/20) (Daisuke Taniwaki)
    • add {set,get,delete}_{bucket,object}_tags apis (#982) (10/19/20) (Bala FA)
    • Add python 3.9 support in github workflow. (#1003) (10/19/20) (menishmueli)
    • Refactor XML handling of select_object_content() API (#993) (10/19/20) (Bala FA)
    • fix Host header in request correctly (#1004) (10/19/20) (Bala FA)
    • Update API.md (#1002) (10/19/20) (Conight)
    • Refactor XML handling of copy_object() API (#996) (10/19/20) (Bala FA)
    • refactor VersioningConfig with embedded XML handling (#988) (10/15/20) (Bala FA)
    • add {set,get,delete}_bucket_lifecycle apis (#981) (10/15/20) (Bala FA)
    • Support Presigned URL for rotating credentials (#1000) (10/15/20) (Daisuke Taniwaki)
    • Handle location constraints inside API methods (#992) (10/14/20) (Bala FA)
    • add {set,get,delete}_bucket_replication APIs. (#979) (10/13/20) (Bala FA)
    • fix typos in docstring and API guide (#984) (10/04/20) (numas)
    • Add {set,get}_bucket_versioning() APIs (#975) (09/25/20) (Bala FA)
    • Fixed Docstring typo in copy_object (#977) (09/24/20) (Rishi Kambil)
    • Move http execution at one place (#968) (09/21/20) (Bala FA)
    • fix: Pass request parameters in query string in LDAPIdentityProvider. (#976) (09/13/20) (stepanko7)
    • remove python2 support (#973) (09/04/20) (Bala FA)
    • Remove universal wheel setting (#972) (09/03/20) (Brian Helba)
    • Remove unnecessary requirement on "future" (#971) (09/03/20) (Brian Helba)
    • Remove collections.abc fallback import (#970) (09/03/20) (Brian Helba)
    • replace {list,remove}_incomplete_uploads with private methods. (#967) (09/02/20) (Bala FA)
    • fix imports using isort (#969) (09/02/20) (Bala FA)
    • simplify credentials module (#963) (09/01/20) (Bala FA)
    • merge list_objects_v2() into list_objects() method (#953) (09/01/20) (Bala FA)
    • fix pylint errors (#966) (08/26/20) (Bala FA)
    • IAMProvider accepts ECS IAM Task roles (#960) (08/22/20) (Nick Lavrov)
    • Ship missing credential files in MANIFEST.in (#962) (08/21/20) (Steve Kowalik)
    • Typo: Use correct variable name for bucket (#959) (08/15/20) (kannappanr)
    • update minimum requirements for minio-py (08/11/20) (Harshavardhana)
    • simplify sse handling (#949) (08/12/20) (Bala FA)
    • fix presigned_url generation issue (#954) (08/10/20) (Harshavardhana)
    • merge get_partial_object() into get_object() method (#952) (08/10/20) (Bala FA)
    • simplify non-empty string check (#951) (08/06/20) (Bala FA)
    • simplify bucket name check (#950) (08/05/20) (Bala FA)
    • queue and queue_empty were removed from minio-py in 6.0 (#948) (08/03/20) (Jochen Wersdörfer)
    • remove deprecate CI build status (08/02/20) (Harshavardhana)
    Source code(tar.gz)
    Source code(zip)
  • 6.0.2(Nov 28, 2020)

  • 6.0.0(Aug 3, 2020)

    Highlights

    • Upgraded APIs to support versioning feature.

    Changelog

    • fix pydoc of all public methods in minio/api.py (#941) (08/03/20) (Bala FA)
    • Create CNAME (08/02/20) (Harshavardhana)
    • fix: doc rendering issue (#938) (07/17/20) (Andrei Vukolov)
    • Add object version-ID support (#923) (07/11/20) (Bala FA)
    • Added expiry_delta in IAM (#935) (07/09/20) (Felipe Ballesteros)
    • fix: pylint version compatibility with isort (#937) (07/09/20) (Harshavardhana)
    • Less memory allocation with put_object() (#930) (06/19/20) (Anis Elleuch)
    • mention when proxy to be used (#928) (06/01/20) (Harshavardhana)
    • refactor minio.credentials (#901) (05/31/20) (Bala FA)
    • simplify constants definition and usage (#927) (05/29/20) (Bala FA)
    • fix trace to be printed before and after execution (#926) (05/25/20) (Bala FA)
    • fix pylint errors in fold_case_dict.py (#911) (05/22/20) (Bala FA)
    • refactor sse.py to fix pylint errors. (#918) (05/18/20) (Bala FA)
    • fix pylint errors in error.py (#910) (05/15/20) (Bala FA)
    • fix pylint errors in functional/tests.py (#921) (05/14/20) (Bala FA)
    • Avoid passing the client to the assume role provider (#900) (05/13/20) (Praveen raj Mani)
    • fix pylint errors in xml_marshal.py (#920) (05/10/20) (Bala FA)
    • fix pylint errors in compat.py (#906) (05/10/20) (Bala FA)
    • change encoding of x-amz-copy-source in copy_object (#912) (05/09/20) (John Flickinger)
    • fix pylint errors in helpers.py (#913) (05/08/20) (Bala FA)
    • fix pylint errors in thread_pool.py (#919) (05/08/20) (Bala FA)
    • fix pylint errors in api.py (#905) (05/07/20) (Bala FA)
    • fix pylint errors in minio.select (#903) (05/07/20) (Bala FA)
    • fix pylint errors in post_policy.py (#916) (05/07/20) (Bala FA)
    • fix pylint errors in parsers.py (#915) (05/07/20) (Bala FA)
    • fix pylint errors in init.py (#914) (05/07/20) (Bala FA)
    • fix pylint errors in signer.py (#917) (05/07/20) (Bala FA)
    • fix pylint errors in copy_conditions.py (#908) (05/07/20) (Bala FA)
    • fix pylint errors in definitions.py (#909) (05/05/20) (Bala FA)
    • fix isort errors (#904) (05/03/20) (Bala FA)
    • simplify functional tests (#898) (04/30/20) (Bala FA)
    • add isort to keep imports sorted (#897) (04/20/20) (Bala FA)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.10(Apr 17, 2020)

    Changelog

    • enable autopep8 (#896) (04/17/20) (Bala FA)
    • fix formatting as per pep8 in examples (#894) (04/17/20) (Bala FA)
    • add support for AssumeRole STS provider (#874) (04/16/20) (Brian Thorne)
    • Allow signing requests for services other than s3 in sign v4 (#893) (04/16/20) (Brian Thorne)
    • fix formatting as per pep8 in tests (#895) (04/15/20) (Bala FA)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.9(Apr 14, 2020)

    Changelog

    • fix formatting as per pep8 in sse.py (#890) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in helpers.py (#886) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in parsers.py (#887) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in error.py (#883) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in definitions.py (#882) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in copy_conditions.py (#881) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in thread_pool.py (#891) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in fold_case_dict.py (#885) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in compat.py (#880) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in minio.credentials (#876) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in post_policy.py (#888) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in xml_marshal.py (#892) (04/14/20) (Bala FA)
    • fix formatting as per pep8 in signer.py (#889) (04/14/20) (Bala FA)
    • preserve x-amz-content-sha256 if specified in presign_v4 (#870) (04/13/20) (Vanessasaurus)
    • fix formatting as per pep8 in api.py (#878) (04/11/20) (Bala FA)
    • fix formatting as per pep8 in minio.select (#877) (04/11/20) (Bala FA)
    • Rename urlencode and urldecode to quote and unquote (#875) (04/11/20) (Brian Thorne)
    • move to latest release for windows CI (#884) (04/10/20) (Harshavardhana)
    • Update MANIFEST.in to generate a complete sdist (#856) (04/08/20) (Denis Laxalde)
    • Adds missing 'minio/credentials/*.sample' files (#866) (04/06/20) (ebozduman)
    • remove deprecated cElementTree (04/07/20) (Karthikeyan Singaravelan)
    • fix github actions error while checking out (#869) (04/06/20) (kannappanr)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.8(Mar 14, 2020)

    Highlights

    • Support Python 3.8. See (#847) for more details.

    Changelog

    • Fixes not subscriptable objects (#858) (03/09/20)
    • Support to put/get/delete default encryption configuration apis on a bucket (#855) (02/24/20)
    • Fix deprecation warnings due to invalid escape sequences. (#853) (02/10/20)
    • Add support for Amazon S3 Transfer Acceleration for presigned urls (#827) (02/02/20)
    • Add note on concurrent usage of Minio client (#849) (02/01/20)
    • python 3.8 compatibility (#847) (01/27/20)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.7(Jan 25, 2020)

    Changelog

    • cleanup whitespace and fix license header (#845) (01/22/20)
    • fix: relax bucket_name validation for existing buckets (#840) (01/22/20)
    • Implement credentials object (similar to minio-go) to enable AWS IAM (#817) (01/22/20)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.6(Dec 30, 2019)

    Changelog

    • Fix detecting a valid endpoint with new Python versions (#836) (12/24/19)
    • Fix some typo in SELECT API doc (#834) (12/16/19)
    • fget_object(): open temporary file on overwrite mode (#824) (#825) (12/04/19)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.5(Nov 12, 2019)

    Changelog

    • Increase presigned timeouts for functional tests (#821) (11/09/19)
    • Remove future depdency for python3 (#818) (11/03/19)
    • Do not need to set max-keys, max-uploads and max-parts (#819) (11/01/19)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.4(Oct 31, 2019)

    Changelog

    • Increment build number (#816) (10/28/19)
    • Increment build number (#815) (10/28/19)
    • signV4: Avoid encoding ~ when found in the query part of the url (#811) (10/26/19)
    • tests: More fixes for better support of Github CI (#812) (10/24/19)
    • Edit example code. (#807) (10/12/19)
    • Update API.md (#805) (10/05/19)
    • FIX: AttributeError at error.message (#803) (10/01/19)
    • Strip port 80/443 from host (#802) (09/30/19)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.1(Sep 18, 2019)

    Changelog

    • Do not encode ~ in V4 S3 signing (#798) (09/18/19)
    • Fix: Missing space between words in error message (#799) (09/16/19)
    • Add github actions workflow (#797) (09/13/19)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0(Sep 11, 2019)

    Highlights

    Breaking change in select object API. See (#793) for more details.

    Changelog

    • Re-implement select_object_content implementation (#793) (09/10/19)
    • Remove white-space characters before parsing XML (#792) (09/02/19)
    Source code(tar.gz)
    Source code(zip)
  • 4.0.21(Aug 28, 2019)

    Changelog

    • Doc: Fix error response URL link (#790) (08/28/19)
    • Add support for ISO time with and without fractional seconds. (#777) (08/22/19) <Milutin Jovanović>
    Source code(tar.gz)
    Source code(zip)
Owner
High Performance, Kubernetes Native Object Storage
Build high performance data infrastructure for machine learning, analytics and application data workloads with MinIO
High Performance, Kubernetes Native Object Storage
This repository is for active development of the Azure SDK for Python.

Azure SDK for Python This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public

Microsoft Azure 3.4k Jan 2, 2023
Pure Python MySQL Client

PyMySQL Table of Contents Requirements Installation Documentation Example Resources License This package contains a pure-Python MySQL client library,

PyMySQL 7.2k Jan 9, 2023
Python client for Apache Kafka

Kafka Python client Python client for the Apache Kafka distributed stream processing system. kafka-python is designed to function much like the offici

Dana Powers 5.1k Jan 8, 2023
Redis Python Client

redis-py The Python interface to the Redis key-value store. Python 2 Compatibility Note redis-py 3.5.x will be the last version of redis-py that suppo

Andy McCurdy 11k Dec 29, 2022
A fast PostgreSQL Database Client Library for Python/asyncio.

asyncpg -- A fast PostgreSQL Database Client Library for Python/asyncio asyncpg is a database interface library designed specifically for PostgreSQL a

magicstack 5.8k Dec 31, 2022
Redis client for Python asyncio (PEP 3156)

Redis client for Python asyncio. Redis client for the PEP 3156 Python event loop. This Redis library is a completely asynchronous, non-blocking client

Jonathan Slenders 554 Dec 4, 2022
Asynchronous Python client for InfluxDB

aioinflux Asynchronous Python client for InfluxDB. Built on top of aiohttp and asyncio. Aioinflux is an alternative to the official InfluxDB Python cl

Gustavo Bezerra 159 Dec 27, 2022
Google Cloud Client Library for Python

Google Cloud Python Client Python idiomatic clients for Google Cloud Platform services. Stability levels The development status classifier on PyPI ind

Google APIs 4.1k Jan 1, 2023
Official Python low-level client for Elasticsearch

Python Elasticsearch Client Official low-level client for Elasticsearch. Its goal is to provide common ground for all Elasticsearch-related code in Py

elastic 3.8k Jan 1, 2023
python-bigquery Apache-2python-bigquery (🥈34 · ⭐ 3.5K · 📈) - Google BigQuery API client library. Apache-2

Python Client for Google BigQuery Querying massive datasets can be time consuming and expensive without the right hardware and infrastructure. Google

Google APIs 550 Jan 1, 2023
High level Python client for Elasticsearch

Elasticsearch DSL Elasticsearch DSL is a high-level library whose aim is to help with writing and running queries against Elasticsearch. It is built o

elastic 3.6k Jan 3, 2023
Python client for InfluxDB

InfluxDB-Python InfluxDB-Python is a client for interacting with InfluxDB. Development of this library is maintained by: Github ID URL @aviau (https:/

InfluxData 1.6k Dec 24, 2022
Confluent's Kafka Python Client

Confluent's Python Client for Apache KafkaTM confluent-kafka-python provides a high-level Producer, Consumer and AdminClient compatible with all Apach

Confluent Inc. 3.1k Jan 5, 2023
Python cluster client for the official redis cluster. Redis 3.0+.

redis-py-cluster This client provides a client for redis cluster that was added in redis 3.0. This project is a port of redis-rb-cluster by antirez, w

Grokzen 1.1k Jan 5, 2023
Pysolr — Python Solr client

pysolr pysolr is a lightweight Python client for Apache Solr. It provides an interface that queries the server and returns results based on the query.

Haystack Search 626 Dec 1, 2022
PyRemoteSQL is a python SQL client that allows you to connect to your remote server with phpMyAdmin installed.

PyRemoteSQL Python MySQL remote client Basically this is a python SQL client that allows you to connect to your remote server with phpMyAdmin installe

ProbablyX 3 Nov 4, 2022
Py2neo is a client library and toolkit for working with Neo4j from within Python

Py2neo Py2neo is a client library and toolkit for working with Neo4j from within Python applications. The library supports both Bolt and HTTP and prov

py2neo.org 1.2k Jan 2, 2023
Python version of the TerminusDB client - for TerminusDB API and WOQLpy

TerminusDB Client Python Development status ⚙️ Python Package status ?? Python version of the TerminusDB client - for TerminusDB API and WOQLpy Requir

TerminusDB 66 Dec 2, 2022
CouchDB client built on top of aiohttp (asyncio)

aiocouchdb source: https://github.com/aio-libs/aiocouchdb documentation: http://aiocouchdb.readthedocs.org/en/latest/ license: BSD CouchDB client buil

aio-libs 53 Apr 5, 2022