15
15
16
16
mod common;
17
17
18
+ use minio:: s3:: args:: SetBucketVersioningArgs ;
18
19
use crate :: common:: { create_bucket_if_not_exists, create_client_on_play} ;
19
- use minio:: s3:: builders:: GetBucketVersioning ;
20
20
use minio:: s3:: Client ;
21
+ use minio:: s3:: response:: { GetBucketVersioningResponse , SetBucketVersioningResponse } ;
22
+ use minio:: s3:: types:: S3Api ;
21
23
22
24
#[ tokio:: main]
23
25
async fn main ( ) -> Result < ( ) , Box < dyn std:: error:: Error + Send + Sync > > {
@@ -27,9 +29,37 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
27
29
let bucket_name: & str = "versioning-rust-bucket" ;
28
30
create_bucket_if_not_exists ( bucket_name, & client) . await ?;
29
31
30
- let bv: GetBucketVersioning = client. get_bucket_versioning ( bucket_name) ;
32
+ let resp: GetBucketVersioningResponse =
33
+ client. get_bucket_versioning ( bucket_name) . send ( ) . await ?;
34
+ log:: info!(
35
+ "versioning before: status={:?}, mfa_delete={:?}" ,
36
+ resp. status,
37
+ resp. mfa_delete
38
+ ) ;
31
39
32
- log:: info!( "{:?}" , bv) ;
40
+ let _resp: SetBucketVersioningResponse = client
41
+ . set_bucket_versioning ( & SetBucketVersioningArgs :: new ( bucket_name, true ) . unwrap ( ) ) . await ?;
42
+
43
+ let resp: GetBucketVersioningResponse =
44
+ client. get_bucket_versioning ( bucket_name) . send ( ) . await ?;
45
+
46
+ log:: info!(
47
+ "versioning after setting to true: status={:?}, mfa_delete={:?}" ,
48
+ resp. status,
49
+ resp. mfa_delete
50
+ ) ;
51
+
52
+ let _resp: SetBucketVersioningResponse = client
53
+ . set_bucket_versioning ( & SetBucketVersioningArgs :: new ( bucket_name, false ) . unwrap ( ) ) . await ?;
54
+
55
+ let resp: GetBucketVersioningResponse =
56
+ client. get_bucket_versioning ( bucket_name) . send ( ) . await ?;
57
+
58
+ log:: info!(
59
+ "versioning after setting to false: status={:?}, mfa_delete={:?}" ,
60
+ resp. status,
61
+ resp. mfa_delete
62
+ ) ;
33
63
34
64
Ok ( ( ) )
35
65
}
0 commit comments