pub struct OSS { /* private fields */ }
Expand description
OSS配置
Implementations§
Source§impl<'a> OSS
impl<'a> OSS
pub fn from_env() -> Self
pub fn open_debug(&self)
pub fn new<S: Into<String>>( key_id: S, key_secret: S, endpoint: S, bucket: S, ) -> Self
pub fn format_host<S: AsRef<str>>( &self, bucket: S, key: S, build: &RequestBuilder, ) -> String
pub fn build_request<S: AsRef<str>>( &self, key: S, build: RequestBuilder, ) -> Result<(String, HeaderMap), InvalidHeaderValue>
pub fn date(&self) -> String
Source§impl OSS
impl OSS
Sourcepub fn get_object<S: AsRef<str>>(
&self,
key: S,
build: RequestBuilder,
) -> Result<Vec<u8>, OssError>
pub fn get_object<S: AsRef<str>>( &self, key: S, build: RequestBuilder, ) -> Result<Vec<u8>, OssError>
获取对象
§使用例子
use aliyun_oss_rust_sdk::oss::OSS;
use aliyun_oss_rust_sdk::request::RequestBuilder;
let oss = OSS::from_env();
let build = RequestBuilder::new();
let bytes = oss.get_object("/hello.txt", build).await.unwrap();
println!("file content: {}", String::from_utf8_lossy(bytes.as_slice()));
Sourcepub fn get_upload_object_policy(
&self,
build: PolicyBuilder,
) -> Result<PolicyResp, OssError>
pub fn get_upload_object_policy( &self, build: PolicyBuilder, ) -> Result<PolicyResp, OssError>
获取上传对象的policy
§使用例子
use aliyun_oss_rust_sdk::entity::PolicyBuilder;
use aliyun_oss_rust_sdk::oss::OSS;
let oss = OSS::from_env();
let policy_builder = PolicyBuilder::new()
.with_expire(60 * 60)//1个小时过期
.with_upload_dir("upload/mydir/")//上传目录
.with_content_type("text/plain")//只允许上传文本.txt
.with_max_upload_size(100 * 1024 * 1024);//只允许文件上传大小1G以内
let policy = oss.get_upload_object_policy(policy_builder).unwrap();
println!("policy: {:?}", policy);
//使用postman测试上传
//form-data的参数为OSSAccessKeyId、policy、signature、success_action_status、key、file
//key为上传的文件名包含路径、例如:upload/mydir/test.txt
//file为上传的文件,类型跟with_content_type一致
Sourcepub fn put_object_from_file<S: AsRef<str>>(
&self,
key: S,
file_path: S,
build: RequestBuilder,
) -> Result<(), OssError>
pub fn put_object_from_file<S: AsRef<str>>( &self, key: S, file_path: S, build: RequestBuilder, ) -> Result<(), OssError>
上传文件(本地文件)
§使用例子
use aliyun_oss_rust_sdk::oss::OSS;
use aliyun_oss_rust_sdk::request::RequestBuilder;
let oss = OSS::from_env();
let builder = RequestBuilder::new()
.with_expire(60);
let file_path = "./hello.txt";
oss.put_object_from_file("/hello.txt", file_path, builder).await.unwrap();
Sourcepub fn pub_object_from_buffer<S: AsRef<str>>(
&self,
key: S,
buffer: &[u8],
build: RequestBuilder,
) -> Result<(), OssError>
pub fn pub_object_from_buffer<S: AsRef<str>>( &self, key: S, buffer: &[u8], build: RequestBuilder, ) -> Result<(), OssError>
上传文件(内存)
§使用例子
use aliyun_oss_rust_sdk::oss::OSS;
use aliyun_oss_rust_sdk::request::RequestBuilder;
let oss = OSS::from_env();
let builder = RequestBuilder::new()
.with_expire(60);
let file_path = "./hello.txt";
let buffer = std::fs::read(file_path).unwrap();
oss.pub_object_from_buffer("/hello.txt", buffer.as_slice(), builder).await.unwrap();
Sourcepub fn delete_object<S: AsRef<str>>(
&self,
key: S,
build: RequestBuilder,
) -> Result<(), OssError>
pub fn delete_object<S: AsRef<str>>( &self, key: S, build: RequestBuilder, ) -> Result<(), OssError>
删除文件
§使用例子
use aliyun_oss_rust_sdk::oss::OSS;
use aliyun_oss_rust_sdk::request::RequestBuilder;
let oss = OSS::from_env();
let builder = RequestBuilder::new()
.with_expire(60);
oss.delete_object("/hello.txt", builder).await.unwrap();
Sourcepub fn get_object_metadata<S: AsRef<str>>(
&self,
key: S,
build: RequestBuilder,
) -> Result<ObjectMetadata, OssError>
pub fn get_object_metadata<S: AsRef<str>>( &self, key: S, build: RequestBuilder, ) -> Result<ObjectMetadata, OssError>
获取对象元数据
§使用例子
use aliyun_oss_rust_sdk::oss::OSS;
use aliyun_oss_rust_sdk::request::RequestBuilder;
let oss = OSS::from_env();
let builder = RequestBuilder::new()
.with_expire(60);
let metadata = oss.get_object_metadata("/hello.txt", builder).await.unwrap();
println!("{:?}", metadata);
Trait Implementations§
Source§impl UrlApi for OSS
impl UrlApi for OSS
Source§fn sign_download_url<S: AsRef<str>>(
&self,
key: S,
build: &RequestBuilder,
) -> String
fn sign_download_url<S: AsRef<str>>( &self, key: S, build: &RequestBuilder, ) -> String
获取签名下载URL Read more
Source§fn sign_upload_url<S: AsRef<str>>(
&self,
key: S,
build: &RequestBuilder,
) -> String
fn sign_upload_url<S: AsRef<str>>( &self, key: S, build: &RequestBuilder, ) -> String
获取签名上传URL Read more
fn sign_url<S: AsRef<str>>(&self, key: S, build: &RequestBuilder) -> String
impl Send for OSS
impl Sync for OSS
Auto Trait Implementations§
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more