Put¶
obstore.put ¶
put(
store: ObjectStore,
path: str,
file: IO[bytes] | Path | bytes,
*,
attributes: Attributes | None = None,
tags: Dict[str, str] | None = None,
mode: PutMode | None = None,
use_multipart: bool | None = None,
chunk_size: int = 5 * 1024 * 1024,
max_concurrency: int = 12
) -> PutResult
Save the provided bytes to the specified location
The operation is guaranteed to be atomic, it will either successfully write the
entirety of file to location, or fail. No clients should be able to observe a
partially written object.
Parameters:
-
store(ObjectStore) –The ObjectStore instance to use.
-
path(str) –The path within ObjectStore for where to save the file.
-
file(IO[bytes] | Path | bytes) –The object to upload. Can either be file-like, a
Pathto a local file, or abytesobject.
Other Parameters:
-
mode(PutMode | None) –Configure the
PutModefor this operation. If this provided and is not"overwrite", a non-multipart upload will be performed. Defaults to"overwrite". -
attributes(Attributes | None) –Provide a set of
Attributes. Defaults toNone. -
tags(Dict[str, str] | None) –Provide tags for this object. Defaults to
None. -
use_multipart(bool | None) –Whether to use a multipart upload under the hood. Defaults using a multipart upload if the length of the file is greater than
chunk_size. -
chunk_size(int) –The size of chunks to use within each part of the multipart upload. Defaults to 5 MB.
-
max_concurrency(int) –The maximum number of chunks to upload concurrently. Defaults to 12.
obstore.put_async
async
¶
put_async(
store: ObjectStore,
path: str,
file: IO[bytes] | Path | bytes,
*,
attributes: Attributes | None = None,
tags: Dict[str, str] | None = None,
mode: PutMode | None = None,
use_multipart: bool | None = None,
chunk_size: int = 5 * 1024 * 1024,
max_concurrency: int = 12
) -> PutResult
Call put asynchronously.
Refer to the documentation for put.
obstore.PutResult ¶
obstore.UpdateVersion ¶
Bases: TypedDict
Uniquely identifies a version of an object to update
Stores will use differing combinations of e_tag and version to provide
conditional updates, and it is therefore recommended applications preserve both
obstore.PutMode
module-attribute
¶
PutMode = Literal['create', 'overwrite'] | UpdateVersion
Configure preconditions for the put operation
If a string is provided, it must be one of:
"overwrite": Perform an atomic write operation, overwriting any object present at the provided path."create": Perform an atomic write operation, returningAlreadyExistsErrorif an object already exists at the provided path
If a dict is provided, it must meet the criteria of UpdateVersion. In this case,
perform an atomic write operation if the current version of the object matches the
provided UpdateVersion, returning
PreconditionError otherwise.