cloudreve_api/api/v4/models/
storage.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Serialize, Deserialize, Clone)]
7pub struct StoragePolicy {
8 pub id: String,
9 pub name: String,
10 #[serde(rename = "type")]
11 pub type_: String,
12 pub max_size: u64,
13 #[serde(default)]
14 pub allowed_suffix: Option<Vec<String>>,
15 #[serde(default)]
16 pub denied_suffix: Option<Vec<String>>,
17 #[serde(default)]
18 pub allowed_name_regexp: Option<String>,
19 #[serde(default)]
20 pub denied_name_regexp: Option<String>,
21 #[serde(default)]
22 pub relay: Option<bool>,
23 #[serde(default)]
24 pub weight: Option<u64>,
25 #[serde(default)]
26 pub children: Option<Vec<StoragePolicy>>,
27 #[serde(default)]
28 pub chunk_concurrency: Option<u32>,
29}
30
31#[derive(Debug, Serialize, Deserialize, Clone)]
33pub struct NewStoragePolicy {
34 pub id: String,
35 pub name: String,
36 #[serde(rename = "type")]
37 pub policy_type: StoragePolicyType,
38 pub allowed_suffix: Option<Vec<String>>,
39 pub denied_suffix: Option<Vec<String>>,
40 pub allowed_name_regexp: Option<String>,
41 pub denied_name_regexp: Option<String>,
42 pub max_size: f64,
43 pub relay: Option<bool>,
44 pub weight: Option<f64>,
45 pub children: Option<Vec<NewStoragePolicy>>,
46 pub chunk_concurrency: Option<i32>,
47}
48
49#[derive(Debug, Serialize, Deserialize, Clone)]
51pub enum StoragePolicyType {
52 #[serde(rename = "local")]
53 Local,
54 #[serde(rename = "qiniu")]
55 Qiniu,
56 #[serde(rename = "upyun")]
57 Upyun,
58 #[serde(rename = "oss")]
59 Oss,
60 #[serde(rename = "cos")]
61 Cos,
62 #[serde(rename = "s3")]
63 S3,
64 #[serde(rename = "onedrive")]
65 Onedrive,
66 #[serde(rename = "remote")]
67 Remote,
68 #[serde(rename = "obs")]
69 Obs,
70 #[serde(rename = "load_balance")]
71 LoadBalance,
72 #[serde(rename = "ks3")]
73 KS3,
74}
75
76#[derive(Debug, Serialize, Deserialize, Clone)]
78pub struct NewEntity {
79 pub id: String,
80 pub size: i64,
81 pub r#type: EntityType,
82 pub created_at: String,
83 pub storage_policy: Option<NewStoragePolicy>,
84 pub created_by: super::auth::NewUser,
85}
86
87#[derive(Debug, Serialize, Deserialize, Clone)]
89pub enum EntityType {
90 #[serde(rename = "0")]
91 Primary = 0,
92 #[serde(rename = "1")]
93 Secondary = 1,
94 #[serde(rename = "2")]
95 Temporary = 2,
96}
97
98#[derive(Debug, Serialize, Deserialize, Clone)]
100pub struct DirectLink {
101 pub id: String,
102 pub url: String,
103 pub downloaded: f64,
104 pub created_at: String,
105}
106
107#[derive(Debug, Serialize, Deserialize)]
109pub struct Node {
110 pub id: u64,
111 pub name: String,
112 pub created_at: String,
113}