This is an automated email from the ASF dual-hosted git repository.
mneumann pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-rs-object-store.git
The following commit(s) were added to refs/heads/main by this push:
new 40d30c6 refactor: `PutMultiPartOpts` => `PutMultiPartOptions` (#406)
40d30c6 is described below
commit 40d30c6710d8d43d11d44e377a51602513f6dfac
Author: Marco Neumann <[email protected]>
AuthorDate: Tue Jun 17 13:09:01 2025 +0200
refactor: `PutMultiPartOpts` => `PutMultiPartOptions` (#406)
See #339. The old name is kept as a deprecated alias for now.
---
src/aws/client.rs | 6 +++---
src/aws/mod.rs | 12 ++++++------
src/azure/client.rs | 6 +++---
src/azure/mod.rs | 6 +++---
src/buffered.rs | 6 +++---
src/chunked.rs | 4 ++--
src/gcp/client.rs | 6 +++---
src/gcp/mod.rs | 6 +++---
src/http/mod.rs | 5 +++--
src/lib.rs | 21 +++++++++++++--------
src/limit.rs | 4 ++--
src/local.rs | 5 +++--
src/memory.rs | 4 ++--
src/prefix.rs | 6 +++---
src/throttle.rs | 4 ++--
tests/get_range_file.rs | 2 +-
16 files changed, 55 insertions(+), 48 deletions(-)
diff --git a/src/aws/client.rs b/src/aws/client.rs
index 2911370..464c143 100644
--- a/src/aws/client.rs
+++ b/src/aws/client.rs
@@ -36,7 +36,7 @@ use crate::client::{GetOptionsExt, HttpClient, HttpError,
HttpResponse};
use crate::list::{PaginatedListOptions, PaginatedListResult};
use crate::multipart::PartId;
use crate::{
- Attribute, Attributes, ClientOptions, GetOptions, MultipartId, Path,
PutMultipartOpts,
+ Attribute, Attributes, ClientOptions, GetOptions, MultipartId, Path,
PutMultipartOptions,
PutPayload, PutResult, Result, RetryConfig, TagSet,
};
use async_trait::async_trait;
@@ -630,9 +630,9 @@ impl S3Client {
pub(crate) async fn create_multipart(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<MultipartId> {
- let PutMultipartOpts {
+ let PutMultipartOptions {
tags,
attributes,
extensions,
diff --git a/src/aws/mod.rs b/src/aws/mod.rs
index 0a20817..8dac2bd 100644
--- a/src/aws/mod.rs
+++ b/src/aws/mod.rs
@@ -45,7 +45,7 @@ use crate::signer::Signer;
use crate::util::STRICT_ENCODE_SET;
use crate::{
Error, GetOptions, GetResult, ListResult, MultipartId, MultipartUpload,
ObjectMeta,
- ObjectStore, Path, PutMode, PutMultipartOpts, PutOptions, PutPayload,
PutResult, Result,
+ ObjectStore, Path, PutMode, PutMultipartOptions, PutOptions, PutPayload,
PutResult, Result,
UploadPart,
};
@@ -231,7 +231,7 @@ impl ObjectStore for AmazonS3 {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
let upload_id = self.client.create_multipart(location, opts).await?;
@@ -317,7 +317,7 @@ impl ObjectStore for AmazonS3 {
Some(S3CopyIfNotExists::Multipart) => {
let upload_id = self
.client
- .create_multipart(to, PutMultipartOpts::default())
+ .create_multipart(to, PutMultipartOptions::default())
.await?;
let res = async {
@@ -442,7 +442,7 @@ impl MultipartUpload for S3MultiPartUpload {
impl MultipartStore for AmazonS3 {
async fn create_multipart(&self, path: &Path) -> Result<MultipartId> {
self.client
- .create_multipart(path, PutMultipartOpts::default())
+ .create_multipart(path, PutMultipartOptions::default())
.await
}
@@ -518,7 +518,7 @@ mod tests {
let str = "test.bin";
let path = Path::parse(str).unwrap();
- let opts = PutMultipartOpts::default();
+ let opts = PutMultipartOptions::default();
let mut upload = store.put_multipart_opts(&path, opts).await.unwrap();
upload
@@ -549,7 +549,7 @@ mod tests {
let str = "test.bin";
let path = Path::parse(str).unwrap();
- let opts = PutMultipartOpts::default();
+ let opts = PutMultipartOptions::default();
let mut upload = store.put_multipart_opts(&path, opts).await.unwrap();
upload
diff --git a/src/azure/client.rs b/src/azure/client.rs
index 428a99b..6a9d38c 100644
--- a/src/azure/client.rs
+++ b/src/azure/client.rs
@@ -29,7 +29,7 @@ use crate::multipart::PartId;
use crate::util::{deserialize_rfc1123, GetRange};
use crate::{
Attribute, Attributes, ClientOptions, GetOptions, ListResult, ObjectMeta,
Path, PutMode,
- PutMultipartOpts, PutOptions, PutPayload, PutResult, Result, RetryConfig,
TagSet,
+ PutMultipartOptions, PutOptions, PutPayload, PutResult, Result,
RetryConfig, TagSet,
};
use async_trait::async_trait;
use base64::prelude::{BASE64_STANDARD, BASE64_STANDARD_NO_PAD};
@@ -597,9 +597,9 @@ impl AzureClient {
&self,
path: &Path,
parts: Vec<PartId>,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<PutResult> {
- let PutMultipartOpts {
+ let PutMultipartOptions {
tags,
attributes,
extensions,
diff --git a/src/azure/mod.rs b/src/azure/mod.rs
index d686bac..f65bf9f 100644
--- a/src/azure/mod.rs
+++ b/src/azure/mod.rs
@@ -27,7 +27,7 @@ use crate::{
path::Path,
signer::Signer,
GetOptions, GetResult, ListResult, MultipartId, MultipartUpload,
ObjectMeta, ObjectStore,
- PutMultipartOpts, PutOptions, PutPayload, PutResult, Result, UploadPart,
+ PutMultipartOptions, PutOptions, PutPayload, PutResult, Result, UploadPart,
};
use async_trait::async_trait;
use futures::stream::{BoxStream, StreamExt, TryStreamExt};
@@ -99,7 +99,7 @@ impl ObjectStore for MicrosoftAzure {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
Ok(Box::new(AzureMultiPartUpload {
part_idx: 0,
@@ -221,7 +221,7 @@ impl Signer for MicrosoftAzure {
struct AzureMultiPartUpload {
part_idx: usize,
state: Arc<UploadState>,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
}
#[derive(Debug)]
diff --git a/src/buffered.rs b/src/buffered.rs
index a767cb6..f189c53 100644
--- a/src/buffered.rs
+++ b/src/buffered.rs
@@ -19,7 +19,7 @@
use crate::path::Path;
use crate::{
- Attributes, ObjectMeta, ObjectStore, PutMultipartOpts, PutOptions,
PutPayloadMut, TagSet,
+ Attributes, ObjectMeta, ObjectStore, PutMultipartOptions, PutOptions,
PutPayloadMut, TagSet,
WriteMultipart,
};
use bytes::Bytes;
@@ -337,7 +337,7 @@ impl BufWriter {
} else {
let buffer = std::mem::take(b);
let path = std::mem::take(path);
- let opts = PutMultipartOpts {
+ let opts = PutMultipartOptions {
attributes:
self.attributes.take().unwrap_or_default(),
tags: self.tags.take().unwrap_or_default(),
extensions:
self.extensions.take().unwrap_or_default(),
@@ -397,7 +397,7 @@ impl AsyncWrite for BufWriter {
if b.content_length().saturating_add(buf.len()) >= cap {
let buffer = std::mem::take(b);
let path = std::mem::take(path);
- let opts = PutMultipartOpts {
+ let opts = PutMultipartOptions {
attributes:
self.attributes.take().unwrap_or_default(),
tags: self.tags.take().unwrap_or_default(),
extensions:
self.extensions.take().unwrap_or_default(),
diff --git a/src/chunked.rs b/src/chunked.rs
index 2bb30b9..8af3b2c 100644
--- a/src/chunked.rs
+++ b/src/chunked.rs
@@ -29,7 +29,7 @@ use futures::StreamExt;
use crate::path::Path;
use crate::{
GetOptions, GetResult, GetResultPayload, ListResult, MultipartUpload,
ObjectMeta, ObjectStore,
- PutMultipartOpts, PutOptions, PutResult,
+ PutMultipartOptions, PutOptions, PutResult,
};
use crate::{PutPayload, Result};
@@ -78,7 +78,7 @@ impl ObjectStore for ChunkedStore {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
self.inner.put_multipart_opts(location, opts).await
}
diff --git a/src/gcp/client.rs b/src/gcp/client.rs
index 0378843..bd365ca 100644
--- a/src/gcp/client.rs
+++ b/src/gcp/client.rs
@@ -32,7 +32,7 @@ use crate::multipart::PartId;
use crate::path::Path;
use crate::util::hex_encode;
use crate::{
- Attribute, Attributes, ClientOptions, GetOptions, MultipartId, PutMode,
PutMultipartOpts,
+ Attribute, Attributes, ClientOptions, GetOptions, MultipartId, PutMode,
PutMultipartOptions,
PutOptions, PutPayload, PutResult, Result, RetryConfig,
};
use async_trait::async_trait;
@@ -444,9 +444,9 @@ impl GoogleCloudStorageClient {
pub(crate) async fn multipart_initiate(
&self,
path: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<MultipartId> {
- let PutMultipartOpts {
+ let PutMultipartOptions {
// not supported by GCP
tags: _,
attributes,
diff --git a/src/gcp/mod.rs b/src/gcp/mod.rs
index dfd638a..442b24f 100644
--- a/src/gcp/mod.rs
+++ b/src/gcp/mod.rs
@@ -42,7 +42,7 @@ use crate::gcp::credential::GCSAuthorizer;
use crate::signer::Signer;
use crate::{
multipart::PartId, path::Path, GetOptions, GetResult, ListResult,
MultipartId, MultipartUpload,
- ObjectMeta, ObjectStore, PutMultipartOpts, PutOptions, PutPayload,
PutResult, Result,
+ ObjectMeta, ObjectStore, PutMultipartOptions, PutOptions, PutPayload,
PutResult, Result,
UploadPart,
};
use async_trait::async_trait;
@@ -161,7 +161,7 @@ impl ObjectStore for GoogleCloudStorage {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
let upload_id = self.client.multipart_initiate(location, opts).await?;
@@ -213,7 +213,7 @@ impl ObjectStore for GoogleCloudStorage {
impl MultipartStore for GoogleCloudStorage {
async fn create_multipart(&self, path: &Path) -> Result<MultipartId> {
self.client
- .multipart_initiate(path, PutMultipartOpts::default())
+ .multipart_initiate(path, PutMultipartOptions::default())
.await
}
diff --git a/src/http/mod.rs b/src/http/mod.rs
index 8b1f505..8581f92 100644
--- a/src/http/mod.rs
+++ b/src/http/mod.rs
@@ -46,7 +46,8 @@ use crate::http::client::Client;
use crate::path::Path;
use crate::{
ClientConfigKey, ClientOptions, GetOptions, GetResult, ListResult,
MultipartUpload, ObjectMeta,
- ObjectStore, PutMode, PutMultipartOpts, PutOptions, PutPayload, PutResult,
Result, RetryConfig,
+ ObjectStore, PutMode, PutMultipartOptions, PutOptions, PutPayload,
PutResult, Result,
+ RetryConfig,
};
mod client;
@@ -122,7 +123,7 @@ impl ObjectStore for HttpStore {
async fn put_multipart_opts(
&self,
_location: &Path,
- _opts: PutMultipartOpts,
+ _opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
Err(crate::Error::NotImplemented)
}
diff --git a/src/lib.rs b/src/lib.rs
index 80e91d7..06edd33 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -614,7 +614,7 @@ pub trait ObjectStore: std::fmt::Display + Send + Sync +
Debug + 'static {
///
/// For more advanced multipart uploads see
[`MultipartStore`](multipart::MultipartStore)
async fn put_multipart(&self, location: &Path) -> Result<Box<dyn
MultipartUpload>> {
- self.put_multipart_opts(location, PutMultipartOpts::default())
+ self.put_multipart_opts(location, PutMultipartOptions::default())
.await
}
@@ -627,7 +627,7 @@ pub trait ObjectStore: std::fmt::Display + Send + Sync +
Debug + 'static {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>>;
/// Return the bytes that are stored at the specified location.
@@ -823,7 +823,7 @@ macro_rules! as_ref_impl {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
self.as_ref().put_multipart_opts(location, opts).await
}
@@ -1234,9 +1234,14 @@ impl From<Attributes> for PutOptions {
}
}
+// See <https://github.com/apache/arrow-rs-object-store/issues/339>.
+#[doc(hidden)]
+#[deprecated(note = "Use PutMultipartOptions", since = "0.13.0")]
+pub type PutMultipartOpts = PutMultipartOptions;
+
/// Options for [`ObjectStore::put_multipart_opts`]
#[derive(Debug, Clone, Default)]
-pub struct PutMultipartOpts {
+pub struct PutMultipartOptions {
/// Provide a [`TagSet`] for this object
///
/// Implementations that don't support object tagging should ignore this
@@ -1254,7 +1259,7 @@ pub struct PutMultipartOpts {
pub extensions: ::http::Extensions,
}
-impl PartialEq<Self> for PutMultipartOpts {
+impl PartialEq<Self> for PutMultipartOptions {
fn eq(&self, other: &Self) -> bool {
let Self {
tags,
@@ -1270,9 +1275,9 @@ impl PartialEq<Self> for PutMultipartOpts {
}
}
-impl Eq for PutMultipartOpts {}
+impl Eq for PutMultipartOptions {}
-impl From<TagSet> for PutMultipartOpts {
+impl From<TagSet> for PutMultipartOptions {
fn from(tags: TagSet) -> Self {
Self {
tags,
@@ -1281,7 +1286,7 @@ impl From<TagSet> for PutMultipartOpts {
}
}
-impl From<Attributes> for PutMultipartOpts {
+impl From<Attributes> for PutMultipartOptions {
fn from(attributes: Attributes) -> Self {
Self {
attributes,
diff --git a/src/limit.rs b/src/limit.rs
index 330a0da..8571496 100644
--- a/src/limit.rs
+++ b/src/limit.rs
@@ -19,7 +19,7 @@
use crate::{
BoxStream, GetOptions, GetResult, GetResultPayload, ListResult,
MultipartUpload, ObjectMeta,
- ObjectStore, Path, PutMultipartOpts, PutOptions, PutPayload, PutResult,
Result, StreamExt,
+ ObjectStore, Path, PutMultipartOptions, PutOptions, PutPayload, PutResult,
Result, StreamExt,
UploadPart,
};
use async_trait::async_trait;
@@ -96,7 +96,7 @@ impl<T: ObjectStore> ObjectStore for LimitStore<T> {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
let upload = self.inner.put_multipart_opts(location, opts).await?;
Ok(Box::new(LimitUpload {
diff --git a/src/local.rs b/src/local.rs
index ccf6e34..dc2e2d1 100644
--- a/src/local.rs
+++ b/src/local.rs
@@ -38,7 +38,8 @@ use crate::{
path::{absolute_path_to_url, Path},
util::InvalidGetRange,
Attributes, GetOptions, GetResult, GetResultPayload, ListResult,
MultipartUpload, ObjectMeta,
- ObjectStore, PutMode, PutMultipartOpts, PutOptions, PutPayload, PutResult,
Result, UploadPart,
+ ObjectStore, PutMode, PutMultipartOptions, PutOptions, PutPayload,
PutResult, Result,
+ UploadPart,
};
/// A specialized `Error` for filesystem object store-related errors
@@ -388,7 +389,7 @@ impl ObjectStore for LocalFileSystem {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
if !opts.attributes.is_empty() {
return Err(crate::Error::NotImplemented);
diff --git a/src/memory.rs b/src/memory.rs
index f03dbc6..e15c246 100644
--- a/src/memory.rs
+++ b/src/memory.rs
@@ -30,7 +30,7 @@ use crate::multipart::{MultipartStore, PartId};
use crate::util::InvalidGetRange;
use crate::{
path::Path, Attributes, GetRange, GetResult, GetResultPayload, ListResult,
MultipartId,
- MultipartUpload, ObjectMeta, ObjectStore, PutMode, PutMultipartOpts,
PutOptions, PutResult,
+ MultipartUpload, ObjectMeta, ObjectStore, PutMode, PutMultipartOptions,
PutOptions, PutResult,
Result, UpdateVersion, UploadPart,
};
use crate::{GetOptions, PutPayload};
@@ -224,7 +224,7 @@ impl ObjectStore for InMemory {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
Ok(Box::new(InMemoryUpload {
location: location.clone(),
diff --git a/src/prefix.rs b/src/prefix.rs
index c2802c1..e5a917a 100644
--- a/src/prefix.rs
+++ b/src/prefix.rs
@@ -22,8 +22,8 @@ use std::ops::Range;
use crate::path::Path;
use crate::{
- GetOptions, GetResult, ListResult, MultipartUpload, ObjectMeta,
ObjectStore, PutMultipartOpts,
- PutOptions, PutPayload, PutResult, Result,
+ GetOptions, GetResult, ListResult, MultipartUpload, ObjectMeta,
ObjectStore,
+ PutMultipartOptions, PutOptions, PutPayload, PutResult, Result,
};
/// Store wrapper that applies a constant prefix to all paths handled by the
store.
@@ -121,7 +121,7 @@ impl<T: ObjectStore> ObjectStore for PrefixStore<T> {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
let full_path = self.full_path(location);
self.inner.put_multipart_opts(&full_path, opts).await
diff --git a/src/throttle.rs b/src/throttle.rs
index efe2949..8f40871 100644
--- a/src/throttle.rs
+++ b/src/throttle.rs
@@ -23,7 +23,7 @@ use std::{convert::TryInto, sync::Arc};
use crate::multipart::{MultipartStore, PartId};
use crate::{
path::Path, GetResult, GetResultPayload, ListResult, MultipartId,
MultipartUpload, ObjectMeta,
- ObjectStore, PutMultipartOpts, PutOptions, PutPayload, PutResult, Result,
+ ObjectStore, PutMultipartOptions, PutOptions, PutPayload, PutResult,
Result,
};
use crate::{GetOptions, UploadPart};
use async_trait::async_trait;
@@ -174,7 +174,7 @@ impl<T: ObjectStore> ObjectStore for ThrottledStore<T> {
async fn put_multipart_opts(
&self,
location: &Path,
- opts: PutMultipartOpts,
+ opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
let upload = self.inner.put_multipart_opts(location, opts).await?;
Ok(Box::new(ThrottledUpload {
diff --git a/tests/get_range_file.rs b/tests/get_range_file.rs
index 6790c11..d5ac8e3 100644
--- a/tests/get_range_file.rs
+++ b/tests/get_range_file.rs
@@ -49,7 +49,7 @@ impl ObjectStore for MyStore {
async fn put_multipart_opts(
&self,
_location: &Path,
- _opts: PutMultipartOpts,
+ _opts: PutMultipartOptions,
) -> Result<Box<dyn MultipartUpload>> {
todo!()
}