34 stable releases

new 44.13.6 May 9, 2022
44.13.0 Apr 29, 2022
44.8.5 Mar 25, 2022
44.2.2 Aug 18, 2021
43.2.0 Apr 28, 2021

#8 in #continuous-integration

Download history 3/week @ 2022-01-24 18/week @ 2022-01-31 4/week @ 2022-02-07 52/week @ 2022-02-14 48/week @ 2022-02-21 38/week @ 2022-02-28 21/week @ 2022-03-07 89/week @ 2022-03-14 73/week @ 2022-03-21 4/week @ 2022-03-28 90/week @ 2022-04-04 88/week @ 2022-04-11 47/week @ 2022-04-18 266/week @ 2022-04-25 408/week @ 2022-05-02 56/week @ 2022-05-09

778 downloads per month

MPL-2.0 license


Taskcluster Upload Support

This library is a companion to the [docs.rs](https://docs.rs/taskcluster) Taskcluster client, with support for uploading objects.


See docs.rs for detailed usage information.


This library is co-versioned with Taskcluster itself. That is, a client with version x.y.z contains API methods corresponding to Taskcluster version x.y.z. Taskcluster is careful to maintain API compatibility, and guarantees it within a major version. That means that any client with version x.* will work against any Taskcluster services at version x.*, and is very likely to work for many other major versions of the Taskcluster services. Any incompatibilities are noted in the Changelog.


Support for uploading data to the Taskcluster object server.

This crate provides a set of functions to perform an object-service upload. These functions negotiate an upload method with the object service, and then perform the upload, following all of the Taskcluster recommended practices.

Each function takes the necessary metadata for the upload, a handle to the data to be uploaded, and a [taskcluster::Object] client. The data to be uploaded can come in a variety of forms, described below. The client must be configured with the necessary credentials to access the object service.

Convenience Functions

Most uses of this crate can utilize [upload_from_buf] or [upload_from_file], providing the data in the form of a buffer and a [tokio::fs::File], respectively.


An upload may be retried, in which case the upload function must have access to the object data from the beginning. This is accomplished with the AsyncReaderFactory trait, which defines a get_reader method to generate a fresh [tokio::io::AsyncRead] for each attempt. Users for whom the supplied convenience functions are inadequate can add their own implementation of this trait.


~504K SLoC