pub struct Client { /* private fields */ }Expand description
An synchronous OSS client which requesting aliyun OSS api in blocking mode.
Implementations§
Source§impl Client
impl Client
Sourcepub fn presign_url<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
options: PresignGetOptions,
) -> String
pub fn presign_url<S1, S2>( &self, bucket_name: S1, object_key: S2, options: PresignGetOptions, ) -> String
Presign URL for GET request without any additional headers supported, for brower mostly
pub fn presign_raw_request(&self, oss_request: OssRequest) -> SignedOssRequest
Source§impl Client
impl Client
Sourcepub fn from_env() -> Self
pub fn from_env() -> Self
Creates a new client from environment variables.
ALI_ACCESS_KEY_IDThe access key idALI_ACCESS_KEY_SECRETThe access key secretALI_OSS_ENDPOINTThe endpoint of the OSS service. e.g.oss-cn-hangzhou.aliyuncs.com. Or, you can write full URLhttp://oss-cn-hangzhou.aliyuncs.comorhttps://oss-cn-hangzhou.aliyuncs.comwith schemehttporhttps.ALI_OSS_REGIONOptional. The region of the OSS service. If not present, It will be inferred from theALI_OSS_ENDPOINTenv.
pub fn new<S1, S2, S3, S4>( access_key_id: S1, access_key_secret: S2, region: S3, endpoint: S4, ) -> Self
Trait Implementations§
Source§impl BucketOperations for Client
impl BucketOperations for Client
fn put_bucket<S: AsRef<str>>( &self, bucket_name: S, config: PutBucketConfiguration, options: Option<PutBucketOptions>, ) -> Result<()>
fn list_buckets( &self, options: Option<ListBucketsOptions>, ) -> Result<ListBucketsResult>
fn get_bucket_info<S: AsRef<str>>(&self, bucket_name: S) -> Result<BucketDetail>
fn get_bucket_location<S: AsRef<str>>(&self, bucket_name: S) -> Result<String>
fn get_bucket_stat<S: AsRef<str>>(&self, bucket_name: S) -> Result<BucketStat>
fn list_objects<S: AsRef<str>>( &self, bucket_name: S, options: Option<ListObjectsOptions>, ) -> Result<ListObjectsResult>
fn delete_bucket<S: AsRef<str>>(&self, bucket_name: S) -> Result<()>
Source§impl CnameOperations for Client
impl CnameOperations for Client
Source§fn list_cname<S>(&self, bucket_name: S) -> Result<Vec<CnameInfo>>
fn list_cname<S>(&self, bucket_name: S) -> Result<Vec<CnameInfo>>
Official document: https://help.aliyun.com/zh/oss/developer-reference/listcname
Source§impl MultipartUploadsOperations for Client
impl MultipartUploadsOperations for Client
Source§fn list_multipart_uploads<S>(
&self,
bucket_name: S,
options: Option<ListMultipartUploadsOptions>,
) -> Result<ListMultipartUploadsResult>
fn list_multipart_uploads<S>( &self, bucket_name: S, options: Option<ListMultipartUploadsOptions>, ) -> Result<ListMultipartUploadsResult>
List multipart uploads which are initialized but not completed nor aborted.
Official document: https://help.aliyun.com/zh/oss/developer-reference/listmultipartuploads
Source§fn list_parts<S1, S2, S3>(
&self,
bucket_name: S1,
object_key: S2,
upload_id: S3,
options: Option<ListPartsOptions>,
) -> Result<ListPartsResult>
fn list_parts<S1, S2, S3>( &self, bucket_name: S1, object_key: S2, upload_id: S3, options: Option<ListPartsOptions>, ) -> Result<ListPartsResult>
List parts which uploaded successfully associated with the given upload_id
Official document: https://help.aliyun.com/zh/oss/developer-reference/listparts
Source§fn initiate_multipart_uploads<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
options: Option<InitiateMultipartUploadOptions>,
) -> Result<InitiateMultipartUploadResult>
fn initiate_multipart_uploads<S1, S2>( &self, bucket_name: S1, object_key: S2, options: Option<InitiateMultipartUploadOptions>, ) -> Result<InitiateMultipartUploadResult>
Initiate multipart uploads
Official document: https://help.aliyun.com/zh/oss/developer-reference/initiatemultipartupload
Source§fn upload_part_from_file<S1, S2, P>(
&self,
bucket_name: S1,
object_key: S2,
file_path: P,
range: Range<u64>,
params: UploadPartRequest,
) -> Result<UploadPartResult>
fn upload_part_from_file<S1, S2, P>( &self, bucket_name: S1, object_key: S2, file_path: P, range: Range<u64>, params: UploadPartRequest, ) -> Result<UploadPartResult>
Upload part of a file. the caller should take responsibility to make sure the range is valid.
Official document: https://help.aliyun.com/zh/oss/developer-reference/uploadpart
Source§fn upload_part_from_buffer<S1, S2, B>(
&self,
bucket_name: S1,
object_key: S2,
buffer: B,
params: UploadPartRequest,
) -> Result<UploadPartResult>
fn upload_part_from_buffer<S1, S2, B>( &self, bucket_name: S1, object_key: S2, buffer: B, params: UploadPartRequest, ) -> Result<UploadPartResult>
Upload part from buffer.
Official document: https://help.aliyun.com/zh/oss/developer-reference/uploadpart
Source§fn upload_part_from_base64<S1, S2, S3>(
&self,
bucket_name: S1,
object_key: S2,
base64_string: S3,
params: UploadPartRequest,
) -> Result<UploadPartResult>
fn upload_part_from_base64<S1, S2, S3>( &self, bucket_name: S1, object_key: S2, base64_string: S3, params: UploadPartRequest, ) -> Result<UploadPartResult>
Upload part from base64 string.
Official document: https://help.aliyun.com/zh/oss/developer-reference/uploadpart
Source§fn upload_part_copy<S1, S2>(
&self,
bucket_name: S1,
dest_object_key: S2,
data: UploadPartCopyRequest,
options: Option<UploadPartCopyOptions>,
) -> Result<UploadPartCopyResult>
fn upload_part_copy<S1, S2>( &self, bucket_name: S1, dest_object_key: S2, data: UploadPartCopyRequest, options: Option<UploadPartCopyOptions>, ) -> Result<UploadPartCopyResult>
When you want to copy a file larger than 1GB, you must use upload_part_copy.
First, initiate a multipart upload and get uploadId, then call this method to upload parts of the source object.
Finally complete the multipart upload by invoking complete_multipart_uploads
Offical document: https://help.aliyun.com/zh/oss/developer-reference/uploadpartcopy
Source§fn complete_multipart_uploads<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
data: CompleteMultipartUploadRequest,
options: Option<CompleteMultipartUploadOptions>,
) -> Result<CompleteMultipartUploadResult>
fn complete_multipart_uploads<S1, S2>( &self, bucket_name: S1, object_key: S2, data: CompleteMultipartUploadRequest, options: Option<CompleteMultipartUploadOptions>, ) -> Result<CompleteMultipartUploadResult>
Complete multipart uploads
Official document: https://help.aliyun.com/zh/oss/developer-reference/completemultipartupload
Source§impl ObjectAclOperations for Client
impl ObjectAclOperations for Client
Source§fn get_object_acl<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
options: Option<GetObjectAclOptions>,
) -> Result<ObjectAcl>
fn get_object_acl<S1, S2>( &self, bucket_name: S1, object_key: S2, options: Option<GetObjectAclOptions>, ) -> Result<ObjectAcl>
Get an object’s acl.
Official document: https://help.aliyun.com/zh/oss/developer-reference/getobjectacl
Source§fn put_object_acl<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
acl: ObjectAcl,
options: Option<GetObjectAclOptions>,
) -> Result<()>
fn put_object_acl<S1, S2>( &self, bucket_name: S1, object_key: S2, acl: ObjectAcl, options: Option<GetObjectAclOptions>, ) -> Result<()>
Put an object’s acl. If you want to restore the object’s acl to follow bucket acl settings, pass acl as ObjectAcl::Default
Official document: https://help.aliyun.com/zh/oss/developer-reference/putobjectacl
Source§impl ObjectOperations for Client
impl ObjectOperations for Client
Source§fn put_object_from_file<S1, S2, P>(
&self,
bucket_name: S1,
object_key: S2,
file_path: P,
options: Option<PutObjectOptions>,
) -> Result<PutObjectResult>
fn put_object_from_file<S1, S2, P>( &self, bucket_name: S1, object_key: S2, file_path: P, options: Option<PutObjectOptions>, ) -> Result<PutObjectResult>
Uploads a file to a specified bucket and object key.
Official document: https://help.aliyun.com/zh/oss/developer-reference/putobject
Source§fn put_object_from_buffer<S1, S2, B>(
&self,
bucket_name: S1,
object_key: S2,
buffer: B,
options: Option<PutObjectOptions>,
) -> Result<PutObjectResult>
fn put_object_from_buffer<S1, S2, B>( &self, bucket_name: S1, object_key: S2, buffer: B, options: Option<PutObjectOptions>, ) -> Result<PutObjectResult>
Create an object from buffer. If you are going to upload a large file, it is recommended to use upload_file instead.
And, it is recommended to set mime_type in options
Official document: https://help.aliyun.com/zh/oss/developer-reference/putobject
Source§fn put_object_from_base64<S1, S2, S3>(
&self,
bucket_name: S1,
object_key: S2,
base64_string: S3,
options: Option<PutObjectOptions>,
) -> Result<PutObjectResult>
fn put_object_from_base64<S1, S2, S3>( &self, bucket_name: S1, object_key: S2, base64_string: S3, options: Option<PutObjectOptions>, ) -> Result<PutObjectResult>
Create an object from base64 string.
And, it is recommended to set mime_type in options
Official document: https://help.aliyun.com/zh/oss/developer-reference/putobject
Source§fn append_object_from_file<S1, S2, P>(
&self,
bucket_name: S1,
object_key: S2,
file_path: P,
position: u64,
options: Option<AppendObjectOptions>,
) -> Result<AppendObjectResult>
fn append_object_from_file<S1, S2, P>( &self, bucket_name: S1, object_key: S2, file_path: P, position: u64, options: Option<AppendObjectOptions>, ) -> Result<AppendObjectResult>
Append object.
Official document: https://help.aliyun.com/zh/oss/developer-reference/appendobject
Source§fn append_object_from_buffer<S1, S2, B>(
&self,
bucket_name: S1,
object_key: S2,
buffer: B,
position: u64,
options: Option<AppendObjectOptions>,
) -> Result<AppendObjectResult>
fn append_object_from_buffer<S1, S2, B>( &self, bucket_name: S1, object_key: S2, buffer: B, position: u64, options: Option<AppendObjectOptions>, ) -> Result<AppendObjectResult>
Append object from buffer. suitable for small size content
And, it is recommended to set mime_type in options
Official document: https://help.aliyun.com/zh/oss/developer-reference/putobject
Source§fn append_object_from_base64<S1, S2, S3>(
&self,
bucket_name: S1,
object_key: S2,
base64_string: S3,
position: u64,
options: Option<AppendObjectOptions>,
) -> Result<AppendObjectResult>
fn append_object_from_base64<S1, S2, S3>( &self, bucket_name: S1, object_key: S2, base64_string: S3, position: u64, options: Option<AppendObjectOptions>, ) -> Result<AppendObjectResult>
Append object from base64 string. suitable for small size content
And, it is recommended to set mime_type in options
Official document: https://help.aliyun.com/zh/oss/developer-reference/putobject
Source§fn get_object_to_file<S1, S2, P>(
&self,
bucket_name: S1,
object_key: S2,
file_path: P,
options: Option<GetObjectOptions>,
) -> Result<GetObjectResult>
fn get_object_to_file<S1, S2, P>( &self, bucket_name: S1, object_key: S2, file_path: P, options: Option<GetObjectOptions>, ) -> Result<GetObjectResult>
Uploads a file to a specified bucket and object key.
Official document: https://help.aliyun.com/zh/oss/developer-reference/getobject
Source§fn get_object_to_buffer<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
options: Option<GetObjectOptions>,
) -> Result<Vec<u8>>
fn get_object_to_buffer<S1, S2>( &self, bucket_name: S1, object_key: S2, options: Option<GetObjectOptions>, ) -> Result<Vec<u8>>
Get object content into memory (bytes array).
Large files can consume significant memory, exercise caution when using this function.
Source§fn create_folder<S1, S2>(&self, bucket_name: S1, object_key: S2) -> Result<()>
fn create_folder<S1, S2>(&self, bucket_name: S1, object_key: S2) -> Result<()>
Create a “folder”
Official document: https://help.aliyun.com/zh/oss/developer-reference/putobject
Source§fn delete_folder<S1, S2>(&self, bucket_name: S1, object_key: S2) -> Result<()>
fn delete_folder<S1, S2>(&self, bucket_name: S1, object_key: S2) -> Result<()>
Delete a “folder”. if the folder contains any object, it will not be deleted
Official document: https://help.aliyun.com/zh/oss/developer-reference/deleteobject
Source§fn get_object_metadata<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
options: Option<GetObjectMetadataOptions>,
) -> Result<ObjectMetadata>
fn get_object_metadata<S1, S2>( &self, bucket_name: S1, object_key: S2, options: Option<GetObjectMetadataOptions>, ) -> Result<ObjectMetadata>
Get object metadata
Official document: https://help.aliyun.com/zh/oss/developer-reference/getobjectmeta
Source§fn exists<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
options: Option<GetObjectMetadataOptions>,
) -> Result<bool>
fn exists<S1, S2>( &self, bucket_name: S1, object_key: S2, options: Option<GetObjectMetadataOptions>, ) -> Result<bool>
Check if the object exists or not using get object metadata
Official document: https://help.aliyun.com/zh/oss/developer-reference/getobjectmeta
Source§fn head_object<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
options: Option<HeadObjectOptions>,
) -> Result<ObjectMetadata>
fn head_object<S1, S2>( &self, bucket_name: S1, object_key: S2, options: Option<HeadObjectOptions>, ) -> Result<ObjectMetadata>
Head object
Official document: https://help.aliyun.com/zh/oss/developer-reference/headobject
Source§fn copy_object<S1, S2, S3, S4>(
&self,
source_bucket_name: S1,
source_object_key: S2,
dest_bucket_name: S3,
dest_object_key: S4,
options: Option<CopyObjectOptions>,
) -> Result<CopyObjectResult>
fn copy_object<S1, S2, S3, S4>( &self, source_bucket_name: S1, source_object_key: S2, dest_bucket_name: S3, dest_object_key: S4, options: Option<CopyObjectOptions>, ) -> Result<CopyObjectResult>
Copy files (Objects) between the same or different Buckets within the same region.
Official document: https://help.aliyun.com/zh/oss/developer-reference/copyobject
Source§fn delete_object<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
options: Option<DeleteObjectOptions>,
) -> Result<DeleteObjectResult>
fn delete_object<S1, S2>( &self, bucket_name: S1, object_key: S2, options: Option<DeleteObjectOptions>, ) -> Result<DeleteObjectResult>
Delete an object
Official document: https://help.aliyun.com/zh/oss/developer-reference/deleteobject
Source§fn delete_multiple_objects<S1, S2>(
&self,
bucket_name: S1,
config: DeleteMultipleObjectsConfig<'_, S2>,
) -> Result<DeleteMultipleObjectsResult>
fn delete_multiple_objects<S1, S2>( &self, bucket_name: S1, config: DeleteMultipleObjectsConfig<'_, S2>, ) -> Result<DeleteMultipleObjectsResult>
Delete multiple objects
Official document: https://help.aliyun.com/zh/oss/developer-reference/deletemultipleobjects
Source§fn restore_object<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
config: RestoreObjectRequest,
) -> Result<RestoreObjectResult>
fn restore_object<S1, S2>( &self, bucket_name: S1, object_key: S2, config: RestoreObjectRequest, ) -> Result<RestoreObjectResult>
Restore object
Official document: https://help.aliyun.com/zh/oss/developer-reference/restoreobject
Source§fn clean_restored_object<S1, S2>(
&self,
bucket_name: S1,
object_key: S2,
) -> Result<()>
fn clean_restored_object<S1, S2>( &self, bucket_name: S1, object_key: S2, ) -> Result<()>
Clean retored object
Official document: https://help.aliyun.com/zh/oss/developer-reference/cleanrestoredobject
Source§impl ObjectSymlinkOperations for Client
impl ObjectSymlinkOperations for Client
Source§fn put_symlink<S1, S2, S3>(
&self,
bucket_name: S1,
symlink_object_key: S2,
target_object_key: S3,
options: Option<PutSymlinkOptions>,
) -> Result<PutSymlinkResult>
fn put_symlink<S1, S2, S3>( &self, bucket_name: S1, symlink_object_key: S2, target_object_key: S3, options: Option<PutSymlinkOptions>, ) -> Result<PutSymlinkResult>
Put a symlink object.
target_object_key should be a full and valid object key.
Official document: https://help.aliyun.com/zh/oss/developer-reference/putsymlink
Source§fn get_symlink<S1, S2>(
&self,
bucket_name: S1,
symlink_object_key: S2,
options: Option<GetSymlinkOptions>,
) -> Result<String>
fn get_symlink<S1, S2>( &self, bucket_name: S1, symlink_object_key: S2, options: Option<GetSymlinkOptions>, ) -> Result<String>
Get a symlink object. The returned string is the target object key
Official document: https://help.aliyun.com/zh/oss/developer-reference/getsymlink
Source§impl ObjectTagOperations for Client
impl ObjectTagOperations for Client
Get object taggings
Official document: https://help.aliyun.com/zh/oss/developer-reference/getobjecttagging
Put object taggings
Official document: https://help.aliyun.com/zh/oss/developer-reference/putobjecttagging
Delete object taggings
Official document: https://help.aliyun.com/zh/oss/developer-reference/deleteobjecttagging