Skip to content

@crwilcox crwilcox released this Dec 20, 2018 · 2 commits to master since this release

Implementation Changes

  • Using str instead of repr for multipart boundary.

Dependencies

  • Making requests a strict dependency for the requests subpackage.

Documentation

  • Announce deprecation of Python 2.7 (#51)
  • Fix broken redirect after repository move
  • Updating generated static content in docs.

Internal / Testing Changes

  • Modify file not found test to look for the correct error message
  • Harden tests so they can run with debug logging statements
  • Adding AppVeyor support.
  • Marking the version in master as .dev1.
Assets 2

@dhermes dhermes released this Oct 20, 2017 · 10 commits to master since this release

  • Added fix (#36) to correctly compute an MD5 checksum for Download-s that have Content-Encoding: gzip.

PyPI: https://pypi.org/project/google-resumable-media/0.3.1/
Docs: https://googlecloudplatform.github.io/google-resumable-media-python/0.3.1/

Assets 2

@dhermes dhermes released this Oct 13, 2017 · 16 commits to master since this release

  • Added MD5 checksum validation for Download that uses a stream (#32). This implementation is partial but we considered it worth releasing with limitations. Worth noting:
    • This is only implemented for the requests version of Download (i.e. not in the base Download class and not for the requests version of ChunkedDownload)
    • This is only implemented for MD5 checksums, not CRC32C checksums
    • This will not verify checksums for "composite objects" (i.e. those created via storage.objects.compose) because those objects do not have an MD5 checksum on the server (i.e. they only have a CRC32C checksum)
    • The MD5 checksum will not be validated if the Download was not created with a stream (this is because the implementation updates the checksum in chunks as the request body is consumed into the stream)
    • Progress can be followed on #22
  • Added an extra (#30) so that requests can be installed alongside google-resumable-media via
    pip install google-resumable-media[requests]
    

PyPI: https://pypi.org/project/google-resumable-media/0.3.0/
Docs: https://googlecloudplatform.github.io/google-resumable-media-python/0.3.0/

Assets 2

@dhermes dhermes released this Aug 7, 2017 · 22 commits to master since this release

  • Allow empty files to be sent in ResumableUpload of known size (i.e. when initiate(..., stream_final=True) or initiate(..., total_bytes=0)). Previously failed with "Stream is already exhausted..." (#25)

PyPI: https://pypi.org/project/google-resumable-media/0.2.3/
Docs: https://googlecloudplatform.github.io/google-resumable-media-python/0.2.3/

Assets 2

@dhermes dhermes released this Aug 1, 2017 · 27 commits to master since this release

  • Added optional stream argument to requests.Download. If uses, the downloaded resource will be written directly to the stream in 8KB chunks, rather than being read into RAM. (#20, #21)

PyPI: https://pypi.org/project/google-resumable-media/0.2.2/
Docs: https://googlecloudplatform.github.io/google-resumable-media-python/0.2.2/

Assets 2

@dhermes dhermes released this Jul 21, 2017 · 36 commits to master since this release

  • Bugfix: Stop relying on size in final response of resumable upload. Instead, tracking the number of bytes sent in the final request and incrementing the bytes_uploaded by it. (#18)

PyPI: https://pypi.org/project/google-resumable-media/0.2.1/
Docs: https://googlecloudplatform.github.io/google-resumable-media-python/0.2.1/

Assets 2

@dhermes dhermes released this Jul 18, 2017 · 43 commits to master since this release

  • Removed google.resumable_media.exceptions module (moved into google.resumable_media.common) (feed0a0)
  • Making sure we pass unicode to json.loads() rather than bytes. (#13)

PyPI: https://pypi.org/project/google-resumable-media/0.2.0/
Docs: https://googlecloudplatform.github.io/google-resumable-media-python/0.2.0/

Assets 2

@dhermes dhermes released this May 5, 2017 · 53 commits to master since this release

  • Renamed constants module as common

  • Added RetryStrategy class so individual upload and download instances could have fine-grained control over how they attempt retries.

  • Added non-public _retry_strategy attribute (e.g.) to all upload and download classes. For now, this cannot be modified via the public interface however, it can still be used, e.g.

    from google import resumable_media
    from google.resumable_media.requests import SimpleUpload
    
    upload_url = u'https://some-url.invald'
    upload = SimpleUpload(upload_url)
    
    upload._retry_strategy = resumable_media.RetryStrategy(max_retries=10)

PyPI: https://pypi.python.org/pypi/google-resumable-media/0.1.1
Docs: https://googlecloudplatform.github.io/google-resumable-media-python/0.1.1/

Assets 2

@dhermes dhermes released this May 3, 2017 · 63 commits to master since this release

PyPI: https://pypi.python.org/pypi/google-resumable-media/0.1.0
Docs: https://googlecloudplatform.github.io/google-resumable-media-python/0.1.0/

Assets 2

@dhermes dhermes released this May 2, 2017 · 66 commits to master since this release

  • Adding optional total_bytes argument to ResumableUpload.initiate(). This can be used to explicitly declare the size of the upload. Until this release, the upload size was determined implicitly by calling stream.seek(0, os.SEEK_END) (i.e. seeking until the end of the stream).
  • Adding optional stream_final arguments to ResumableUpload.initiate(). When stream_final=False (and total_bytes is unset), the upload will be started with an unknown size. This can occur, e.g. if the resource is generated on the fly, such as application logs. Such uploads are considered "finished" when the stream is exhausted and at that point the upload will send a content range header indicating completion to the server.

This feature was mentioned in the initial release notes as:

  • Support for resumable uploads with size unknown when initiate()-d

PyPI: https://pypi.python.org/pypi/google-resumable-media/0.0.5
Docs: https://googlecloudplatform.github.io/google-resumable-media-python/0.0.5/

Assets 2
You can’t perform that action at this time.