Struct qiniu_http_client::Region
source · pub struct Region { /* private fields */ }
Expand description
七牛存储区域
提供七牛不同服务的终端地址列表
use qiniu_http_client::Region;
let region = Region::builder("z0")
.add_uc_preferred_endpoint("uc.qbox.me".parse()?)
.add_up_preferred_endpoint("upload.qiniup.com".parse()?)
.add_up_preferred_endpoint("up.qiniup.com".parse()?)
.add_up_alternative_endpoint("up.qbox.me".parse()?)
.add_rs_preferred_endpoint("rs.qbox.me".parse()?)
.add_rsf_preferred_endpoint("rsf.qbox.me".parse()?)
.add_api_preferred_endpoint("api.qiniu.com".parse()?)
.build();
Implementations§
source§impl Region
impl Region
sourcepub fn s3_region_id(&self) -> &str
pub fn s3_region_id(&self) -> &str
获取 S3 区域 ID
sourcepub fn up_preferred_endpoints(&self) -> &[Endpoint]
pub fn up_preferred_endpoints(&self) -> &[Endpoint]
获取上传服务主要终端列表
与 up().preferred()
等效
sourcepub fn up_alternative_endpoints(&self) -> &[Endpoint]
pub fn up_alternative_endpoints(&self) -> &[Endpoint]
获取上传服务备选终端列表
与 up().alternative()
等效
sourcepub fn io_preferred_endpoints(&self) -> &[Endpoint]
pub fn io_preferred_endpoints(&self) -> &[Endpoint]
获取下载服务主要终端列表
与 io().preferred()
等效
sourcepub fn io_alternative_endpoints(&self) -> &[Endpoint]
pub fn io_alternative_endpoints(&self) -> &[Endpoint]
获取下载服务备选终端列表
与 io().alternative()
等效
sourcepub fn uc_preferred_endpoints(&self) -> &[Endpoint]
pub fn uc_preferred_endpoints(&self) -> &[Endpoint]
获取存储空间管理服务主要终端列表
与 uc().preferred()
等效
sourcepub fn uc_alternative_endpoints(&self) -> &[Endpoint]
pub fn uc_alternative_endpoints(&self) -> &[Endpoint]
获取存储空间管理服务备选终端列表
与 uc().alternative()
等效
sourcepub fn rs_preferred_endpoints(&self) -> &[Endpoint]
pub fn rs_preferred_endpoints(&self) -> &[Endpoint]
获取元数据管理服务主要终端列表
与 rs().preferred()
等效
sourcepub fn rs_alternative_endpoints(&self) -> &[Endpoint]
pub fn rs_alternative_endpoints(&self) -> &[Endpoint]
获取元数据管理服务备选终端列表
与 rs().alternative()
等效
sourcepub fn rsf_preferred_endpoints(&self) -> &[Endpoint]
pub fn rsf_preferred_endpoints(&self) -> &[Endpoint]
获取元数据列举服务主要终端列表
与 rsf().preferred()
等效
sourcepub fn rsf_alternative_endpoints(&self) -> &[Endpoint]
pub fn rsf_alternative_endpoints(&self) -> &[Endpoint]
获取元数据列举服务备选终端列表
与 rsf().alternative()
等效
sourcepub fn api_preferred_endpoints(&self) -> &[Endpoint]
pub fn api_preferred_endpoints(&self) -> &[Endpoint]
获取 API 入口服务主要终端列表
与 api().preferred()
等效
sourcepub fn api_alternative_endpoints(&self) -> &[Endpoint]
pub fn api_alternative_endpoints(&self) -> &[Endpoint]
获取 API 入口服务备选终端列表
与 api().alternative()
等效
sourcepub fn s3_preferred_endpoints(&self) -> &[Endpoint]
pub fn s3_preferred_endpoints(&self) -> &[Endpoint]
获取 S3 入口服务主要终端列表
与 s3().preferred()
等效
sourcepub fn s3_alternative_endpoints(&self) -> &[Endpoint]
pub fn s3_alternative_endpoints(&self) -> &[Endpoint]
获取 S3 入口服务备选终端列表
与 s3().alternative()
等效
sourcepub fn up(&self) -> &Endpoints
pub fn up(&self) -> &Endpoints
获取上传服务终端地址列表
Examples found in repository?
More examples
src/regions/endpoints_provider/endpoints.rs (line 85)
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
fn from_region(region: &Region, services: &[ServiceName]) -> Self {
let mut builder = EndpointsBuilder {
preferred: vec![],
alternative: vec![],
};
for service in services {
let e = match service {
ServiceName::Up => region.up(),
ServiceName::Io => region.io(),
ServiceName::Uc => region.uc(),
ServiceName::Rs => region.rs(),
ServiceName::Rsf => region.rsf(),
ServiceName::Api => region.api(),
ServiceName::S3 => region.s3(),
};
builder.preferred.extend_from_slice(e.preferred());
builder.alternative.extend_from_slice(e.alternative());
}
builder.build()
}
sourcepub fn io(&self) -> &Endpoints
pub fn io(&self) -> &Endpoints
获取下载服务终端地址列表
Examples found in repository?
More examples
src/regions/endpoints_provider/endpoints.rs (line 86)
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
fn from_region(region: &Region, services: &[ServiceName]) -> Self {
let mut builder = EndpointsBuilder {
preferred: vec![],
alternative: vec![],
};
for service in services {
let e = match service {
ServiceName::Up => region.up(),
ServiceName::Io => region.io(),
ServiceName::Uc => region.uc(),
ServiceName::Rs => region.rs(),
ServiceName::Rsf => region.rsf(),
ServiceName::Api => region.api(),
ServiceName::S3 => region.s3(),
};
builder.preferred.extend_from_slice(e.preferred());
builder.alternative.extend_from_slice(e.alternative());
}
builder.build()
}
sourcepub fn uc(&self) -> &Endpoints
pub fn uc(&self) -> &Endpoints
获取存储空间管理服务终端地址列表
Examples found in repository?
More examples
src/regions/endpoints_provider/endpoints.rs (line 87)
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
fn from_region(region: &Region, services: &[ServiceName]) -> Self {
let mut builder = EndpointsBuilder {
preferred: vec![],
alternative: vec![],
};
for service in services {
let e = match service {
ServiceName::Up => region.up(),
ServiceName::Io => region.io(),
ServiceName::Uc => region.uc(),
ServiceName::Rs => region.rs(),
ServiceName::Rsf => region.rsf(),
ServiceName::Api => region.api(),
ServiceName::S3 => region.s3(),
};
builder.preferred.extend_from_slice(e.preferred());
builder.alternative.extend_from_slice(e.alternative());
}
builder.build()
}
sourcepub fn rs(&self) -> &Endpoints
pub fn rs(&self) -> &Endpoints
获取元数据管理服务终端地址列表
Examples found in repository?
More examples
src/regions/endpoints_provider/endpoints.rs (line 88)
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
fn from_region(region: &Region, services: &[ServiceName]) -> Self {
let mut builder = EndpointsBuilder {
preferred: vec![],
alternative: vec![],
};
for service in services {
let e = match service {
ServiceName::Up => region.up(),
ServiceName::Io => region.io(),
ServiceName::Uc => region.uc(),
ServiceName::Rs => region.rs(),
ServiceName::Rsf => region.rsf(),
ServiceName::Api => region.api(),
ServiceName::S3 => region.s3(),
};
builder.preferred.extend_from_slice(e.preferred());
builder.alternative.extend_from_slice(e.alternative());
}
builder.build()
}
sourcepub fn rsf(&self) -> &Endpoints
pub fn rsf(&self) -> &Endpoints
获取元数据列举服务终端地址列表
Examples found in repository?
More examples
src/regions/endpoints_provider/endpoints.rs (line 89)
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
fn from_region(region: &Region, services: &[ServiceName]) -> Self {
let mut builder = EndpointsBuilder {
preferred: vec![],
alternative: vec![],
};
for service in services {
let e = match service {
ServiceName::Up => region.up(),
ServiceName::Io => region.io(),
ServiceName::Uc => region.uc(),
ServiceName::Rs => region.rs(),
ServiceName::Rsf => region.rsf(),
ServiceName::Api => region.api(),
ServiceName::S3 => region.s3(),
};
builder.preferred.extend_from_slice(e.preferred());
builder.alternative.extend_from_slice(e.alternative());
}
builder.build()
}
sourcepub fn api(&self) -> &Endpoints
pub fn api(&self) -> &Endpoints
获取 API 入口服务终端地址列表
Examples found in repository?
More examples
src/regions/endpoints_provider/endpoints.rs (line 90)
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
fn from_region(region: &Region, services: &[ServiceName]) -> Self {
let mut builder = EndpointsBuilder {
preferred: vec![],
alternative: vec![],
};
for service in services {
let e = match service {
ServiceName::Up => region.up(),
ServiceName::Io => region.io(),
ServiceName::Uc => region.uc(),
ServiceName::Rs => region.rs(),
ServiceName::Rsf => region.rsf(),
ServiceName::Api => region.api(),
ServiceName::S3 => region.s3(),
};
builder.preferred.extend_from_slice(e.preferred());
builder.alternative.extend_from_slice(e.alternative());
}
builder.build()
}
sourcepub fn s3(&self) -> &Endpoints
pub fn s3(&self) -> &Endpoints
获取 S3 入口服务终端地址列表
Examples found in repository?
More examples
src/regions/endpoints_provider/endpoints.rs (line 91)
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
fn from_region(region: &Region, services: &[ServiceName]) -> Self {
let mut builder = EndpointsBuilder {
preferred: vec![],
alternative: vec![],
};
for service in services {
let e = match service {
ServiceName::Up => region.up(),
ServiceName::Io => region.io(),
ServiceName::Uc => region.uc(),
ServiceName::Rs => region.rs(),
ServiceName::Rsf => region.rsf(),
ServiceName::Api => region.api(),
ServiceName::S3 => region.s3(),
};
builder.preferred.extend_from_slice(e.preferred());
builder.alternative.extend_from_slice(e.alternative());
}
builder.build()
}
sourcepub fn builder(region_id: impl Into<String>) -> RegionBuilder
pub fn builder(region_id: impl Into<String>) -> RegionBuilder
创建区域构建器
Examples found in repository?
src/regions/regions_provider/structs.rs (line 71)
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
fn try_from(body: RegionResponseBody) -> Result<Self, Self::Error> {
let RegionResponseBody {
region,
io,
up,
uc,
rs,
rsf,
api,
s3,
..
} = body;
let mut builder = Self::builder(region);
macro_rules! push_to_builder {
($service_name:expr, $add_to_preferred_endpoint:ident, $add_to_alternative_endpoint:ident) => {
for preferred_domain in $service_name.preferred.iter() {
let endpoint: Endpoint = preferred_domain.as_ref().parse()?;
builder.$add_to_preferred_endpoint(endpoint);
}
if let Some(alternative_domains) = &$service_name.alternative {
for alternative_domain in alternative_domains.iter() {
let endpoint: Endpoint = alternative_domain.as_ref().parse()?;
builder.$add_to_alternative_endpoint(endpoint);
}
}
};
}
push_to_builder!(io, add_io_preferred_endpoint, add_io_alternative_endpoint);
push_to_builder!(up, add_up_preferred_endpoint, add_up_alternative_endpoint);
push_to_builder!(uc, add_uc_preferred_endpoint, add_uc_alternative_endpoint);
push_to_builder!(rs, add_rs_preferred_endpoint, add_rs_alternative_endpoint);
push_to_builder!(rsf, add_rsf_preferred_endpoint, add_rsf_alternative_endpoint);
push_to_builder!(api, add_api_preferred_endpoint, add_api_alternative_endpoint);
push_to_builder!(s3, add_s3_preferred_endpoint, add_s3_alternative_endpoint);
if let Some(s3_region_id) = s3.s3_region_id {
builder.s3_region_id(s3_region_id);
}
Ok(builder.build())
}
Trait Implementations§
source§impl<'de> Deserialize<'de> for Region
impl<'de> Deserialize<'de> for Region
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Extend<Region> for GotRegions
impl Extend<Region> for GotRegions
source§fn extend<T: IntoIterator<Item = Region>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = Region>>(&mut self, iter: T)
Extends a collection with the contents of an iterator. Read more
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one
)Extends a collection with exactly one element.
source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
source§impl Extend<Region> for StaticRegionsProvider
impl Extend<Region> for StaticRegionsProvider
source§fn extend<T: IntoIterator<Item = Region>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = Region>>(&mut self, iter: T)
Extends a collection with the contents of an iterator. Read more
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one
)Extends a collection with exactly one element.
source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
source§impl From<Region> for StaticRegionsProvider
impl From<Region> for StaticRegionsProvider
source§impl FromIterator<Region> for GotRegions
impl FromIterator<Region> for GotRegions
source§impl FromIterator<Region> for StaticRegionsProvider
impl FromIterator<Region> for StaticRegionsProvider
source§impl PartialEq<Region> for Region
impl PartialEq<Region> for Region
source§impl RegionsProvider for Region
impl RegionsProvider for Region
source§fn get_all(&self, opts: GetOptions) -> ApiResult<GotRegions>
fn get_all(&self, opts: GetOptions) -> ApiResult<GotRegions>
返回多个七牛区域信息 Read more
source§fn async_get(&self, opts: GetOptions) -> BoxFuture<'_, ApiResult<GotRegion>>
fn async_get(&self, opts: GetOptions) -> BoxFuture<'_, ApiResult<GotRegion>>
Available on crate feature
async
only.异步返回七牛区域信息
source§fn async_get_all(&self, opts: GetOptions) -> BoxFuture<'_, ApiResult<GotRegions>>
fn async_get_all(&self, opts: GetOptions) -> BoxFuture<'_, ApiResult<GotRegions>>
Available on crate feature
async
only.异步返回多个七牛区域信息
impl Eq for Region
impl StructuralEq for Region
impl StructuralPartialEq for Region
Auto Trait Implementations§
impl RefUnwindSafe for Region
impl Send for Region
impl Sync for Region
impl Unpin for Region
impl UnwindSafe for Region
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Immutable access to the
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Immutable access to the
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Mutable access to the
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.