Skip to content

Commit

Permalink
fix file_path
Browse files Browse the repository at this point in the history
  • Loading branch information
bujnlc8 committed Aug 14, 2024
1 parent 1b29ddf commit 5a23a79
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 37 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## [0.1.10] - 2024-08-14

### Changed

- 将文件上传路径字段`file_path`的类型从`&str`改成`&PathBuf`

## [0.1.9] - 2024-08-08

### Changed
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "qcos"
version = "0.1.9"
version = "0.1.10"
edition = "2021"
authors = ["bujnlc8 <[email protected]>"]
description = "provide basic interface encapsulation of Tencent Cloud Object Storage (cos)"
Expand Down
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
## How to use

```rust
use std::path::PathBuf;
use qcos::acl::{AclHeader, ObjectAcl};
use qcos::client::Client;
use qcos::objects::{mime, ErrNo, Objects};
Expand All @@ -32,7 +33,8 @@ async fn main() {
);
let mut acl_header = AclHeader::new();
acl_header.insert_object_x_cos_acl(ObjectAcl::PublicRead);
let res = client.put_object("test.png", "test.png", Some(mime::IMAGE_PNG), Some(acl_header)).await;
let file_path = PathBuf::from("test.png");
let res = client.put_object(&file_path, "test.png", Some(mime::IMAGE_PNG), Some(acl_header)).await;
if res.error_no == ErrNo::SUCCESS {
println!("success");
} else {
Expand All @@ -43,9 +45,9 @@ async fn main() {
let res = client
.clone()
.put_big_object_progress_bar(
"Cargo.toml",
"Cargo.toml",
Some(mime::TEXT_PLAIN_UTF_8),
&file_path,
"test.png",
None,
Some(qcos::objects::StorageClassEnum::ARCHIVE),
None,
Some(1024 * 1024),
Expand All @@ -69,12 +71,12 @@ async fn main() {

```
[dependencies]
qcos = "0.1.9"
qcos = "0.1.10"
```

如果需要开启显示进度条的方法:

```
[dependencies]
qcos = {version = "0.1.9", features=["progress-bar"]}
qcos = {version = "0.1.10", features=["progress-bar"]}
```
18 changes: 8 additions & 10 deletions examples/objects.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
//! 上传文件
use std::path::PathBuf;

use qcos::acl::{AclHeader, ObjectAcl};
use qcos::client::Client;
use qcos::objects::{mime, Objects};
Expand All @@ -14,13 +16,9 @@ async fn main() {
"region",
);
// 普通上传,无权限控制
let file_path = PathBuf::from("Cargo.toml");
let res = client
.put_object(
"Cargo.toml",
"Cargo.toml",
Some(mime::TEXT_PLAIN_UTF_8),
None,
)
.put_object(&file_path, "Cargo.toml", Some(mime::TEXT_PLAIN_UTF_8), None)
.await;
if res.error_no == ErrNo::SUCCESS {
println!("SUCCESS");
Expand All @@ -32,7 +30,7 @@ async fn main() {
acl.insert_object_x_cos_acl(ObjectAcl::PRIVATE);
let res = client
.put_object(
"Cargo.toml",
&file_path,
"Cargo.toml",
Some(mime::TEXT_PLAIN_UTF_8),
Some(acl),
Expand All @@ -47,7 +45,7 @@ async fn main() {
let res = client
.clone()
.put_big_object(
"Cargo.toml",
&file_path,
"Cargo.toml",
Some(mime::TEXT_PLAIN_UTF_8),
Some(qcos::objects::StorageClassEnum::ARCHIVE),
Expand All @@ -66,7 +64,7 @@ async fn main() {
let res = client
.clone()
.put_big_object_progress_bar(
"Cargo.toml",
&file_path,
"Cargo.toml",
Some(mime::TEXT_PLAIN_UTF_8),
Some(qcos::objects::StorageClassEnum::ARCHIVE),
Expand All @@ -85,7 +83,7 @@ async fn main() {
// 直接上传二进制数据
let res = client
.put_object_binary(
std::fs::read("Cargo.toml").unwrap(),
std::fs::read(&file_path).unwrap(),
"Cargo.toml",
Some(mime::TEXT_PLAIN_UTF_8),
None,
Expand Down
44 changes: 24 additions & 20 deletions src/objects.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ pub trait Objects {
/// 上传本地小文件
async fn put_object(
&self,
file_path: &str,
file_path: &PathBuf,
key: &str,
content_type: Option<mime::Mime>,
acl_header: Option<acl::AclHeader>,
Expand All @@ -76,7 +76,7 @@ pub trait Objects {
#[cfg(feature = "progress-bar")]
async fn put_object_progress_bar(
&self,
file_path: &str,
file_path: &PathBuf,
key: &str,
content_type: Option<mime::Mime>,
acl_header: Option<acl::AclHeader>,
Expand All @@ -87,7 +87,7 @@ pub trait Objects {
#[cfg(feature = "progress-bar")]
async fn put_big_object_progress_bar(
self,
file_path: &str,
file_path: &PathBuf,
key: &str,
content_type: Option<mime::Mime>,
storage_class: Option<StorageClassEnum>,
Expand All @@ -100,7 +100,7 @@ pub trait Objects {
/// 上传本地大文件
async fn put_big_object(
self,
file_path: &str,
file_path: &PathBuf,
key: &str,
content_type: Option<mime::Mime>,
storage_class: Option<StorageClassEnum>,
Expand Down Expand Up @@ -227,17 +227,18 @@ impl Objects for client::Client {
/// use qcos::objects::Objects;
/// use mime;
/// use qcos::acl::{AclHeader, ObjectAcl};
/// use std::path::PathBuf;
/// async {
/// let mut acl_header = AclHeader::new();
/// acl_header.insert_object_x_cos_acl(ObjectAcl::AuthenticatedRead);
/// let client = Client::new("foo", "bar", "qcloudtest-xxx", "ap-guangzhou");
/// let res = client.put_object("Cargo.toml", "Cargo.toml", Some(mime::TEXT_PLAIN_UTF_8), Some(acl_header)).await;
/// let res = client.put_object(&PathBuf::from("Cargo.toml"), "Cargo.toml", Some(mime::TEXT_PLAIN_UTF_8), Some(acl_header)).await;
/// assert!(res.error_message.contains("403"));
/// };
/// ```
async fn put_object(
&self,
file_path: &str,
file_path: &PathBuf,
key: &str,
content_type: Option<mime::Mime>,
acl_header: Option<acl::AclHeader>,
Expand All @@ -247,7 +248,7 @@ impl Objects for client::Client {
Err(e) => {
return Response::new(
ErrNo::IO,
format!("打开文件失败: {}, {}", file_path, e),
format!("打开文件失败: {:?}, {}", file_path, e),
Default::default(),
)
}
Expand All @@ -271,18 +272,19 @@ impl Objects for client::Client {
/// use qcos::objects::Objects;
/// use mime;
/// use qcos::acl::{AclHeader, ObjectAcl};
/// use std::path::PathBuf;
/// async {
/// let mut acl_header = AclHeader::new();
/// acl_header.insert_object_x_cos_acl(ObjectAcl::AuthenticatedRead);
/// let client = Client::new("foo", "bar", "qcloudtest-xxx", "ap-guangzhou");
/// let res = client.put_object_progress_bar("Cargo.toml", "Cargo.toml", Some(mime::TEXT_PLAIN_UTF_8), Some(acl_header), None).await;
/// let res = client.put_object_progress_bar(&PathBuf::from("Cargo.toml"), "Cargo.toml", Some(mime::TEXT_PLAIN_UTF_8), Some(acl_header), None).await;
/// assert!(res.error_message.contains("403"));
/// };
/// ```
#[cfg(feature = "progress-bar")]
async fn put_object_progress_bar(
&self,
file_path: &str,
file_path: &PathBuf,
key: &str,
content_type: Option<mime::Mime>,
acl_header: Option<acl::AclHeader>,
Expand All @@ -293,7 +295,7 @@ impl Objects for client::Client {
Err(e) => {
return Response::new(
ErrNo::IO,
format!("打开文件失败: {}, {}", file_path, e),
format!("打开文件失败: {:?}, {}", file_path, e),
Default::default(),
)
}
Expand Down Expand Up @@ -328,19 +330,20 @@ impl Objects for client::Client {
/// use qcos::objects::{Objects, StorageClassEnum};
/// use mime;
/// use qcos::acl::{AclHeader, ObjectAcl};
/// use std::path::PathBuf;
/// async {
/// let mut acl_header = AclHeader::new();
/// acl_header.insert_object_x_cos_acl(ObjectAcl::AuthenticatedRead);
/// let client = Client::new("foo", "bar", "qcloudtest-xxx", "ap-guangzhou");
/// // 分块传输
/// let res = client.put_big_object_progress_bar("Cargo.toml","Cargo.toml", Some(mime::TEXT_PLAIN_UTF_8), Some(StorageClassEnum::STANDARD), Some(acl_header), Some(1024 * 1024 * 100), None, None).await;
/// let res = client.put_big_object_progress_bar(&PathBuf::from("Cargo.toml"), "Cargo.toml", Some(mime::TEXT_PLAIN_UTF_8), Some(StorageClassEnum::STANDARD), Some(acl_header), Some(1024 * 1024 * 100), None, None).await;
/// assert!(res.error_message.contains("403"));
/// };
/// ```
#[cfg(feature = "progress-bar")]
async fn put_big_object_progress_bar(
self,
file_path: &str,
file_path: &PathBuf,
key: &str,
content_type: Option<mime::Mime>,
storage_class: Option<StorageClassEnum>,
Expand All @@ -357,7 +360,7 @@ impl Objects for client::Client {
Err(e) => {
return Response::new(
ErrNo::IO,
format!("打开文件失败: {}, {}", file_path, e),
format!("打开文件失败: {:?}, {}", file_path, e),
Default::default(),
)
}
Expand All @@ -367,7 +370,7 @@ impl Objects for client::Client {
Err(e) => {
return Response::new(
ErrNo::IO,
format!("获取文件大小失败: {}, {}", file_path, e),
format!("获取文件大小失败: {:?}, {}", file_path, e),
Default::default(),
)
}
Expand Down Expand Up @@ -406,7 +409,7 @@ impl Objects for client::Client {
self.abort_object_part(key, &upload_id).await;
return Response::new(
ErrNo::IO,
format!("读取文件失败: {}, {}", file_path, e),
format!("读取文件失败: {:?}, {}", file_path, e),
Default::default(),
);
}
Expand Down Expand Up @@ -490,18 +493,19 @@ impl Objects for client::Client {
/// use qcos::objects::{Objects, StorageClassEnum};
/// use mime;
/// use qcos::acl::{AclHeader, ObjectAcl};
/// use std::path::PathBuf;
/// async {
/// let mut acl_header = AclHeader::new();
/// acl_header.insert_object_x_cos_acl(ObjectAcl::AuthenticatedRead);
/// let client = Client::new("foo", "bar", "qcloudtest-xxx", "ap-guangzhou");
/// // 分块传输
/// let res = client.put_big_object("Cargo.toml","Cargo.toml", Some(mime::TEXT_PLAIN_UTF_8), Some(StorageClassEnum::STANDARD), Some(acl_header), Some(1024 * 1024 * 100), None).await;
/// let res = client.put_big_object(&PathBuf::from("Cargo.toml"),"Cargo.toml", Some(mime::TEXT_PLAIN_UTF_8), Some(StorageClassEnum::STANDARD), Some(acl_header), Some(1024 * 1024 * 100), None).await;
/// assert!(res.error_message.contains("403"));
/// };
/// ```
async fn put_big_object(
self,
file_path: &str,
file_path: &PathBuf,
key: &str,
content_type: Option<mime::Mime>,
storage_class: Option<StorageClassEnum>,
Expand All @@ -517,7 +521,7 @@ impl Objects for client::Client {
Err(e) => {
return Response::new(
ErrNo::IO,
format!("打开文件失败: {}, {}", file_path, e),
format!("打开文件失败: {:?}, {}", file_path, e),
Default::default(),
)
}
Expand All @@ -527,7 +531,7 @@ impl Objects for client::Client {
Err(e) => {
return Response::new(
ErrNo::IO,
format!("获取文件大小失败: {}, {}", file_path, e),
format!("获取文件大小失败: {:?}, {}", file_path, e),
Default::default(),
)
}
Expand Down Expand Up @@ -562,7 +566,7 @@ impl Objects for client::Client {
self.abort_object_part(key, &upload_id).await;
return Response::new(
ErrNo::IO,
format!("读取文件失败: {}, {}", file_path, e),
format!("读取文件失败: {:?}, {}", file_path, e),
Default::default(),
);
}
Expand Down

0 comments on commit 5a23a79

Please sign in to comment.