File tree 2 files changed +21
-1
lines changed 2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -1943,6 +1943,17 @@ async def _is_bucket_versioned(self, bucket):
1943
1943
1944
1944
is_bucket_versioned = sync_wrapper (_is_bucket_versioned )
1945
1945
1946
+ async def _make_bucket_versioned (self , bucket , versioned : bool = True ):
1947
+ """Set bucket versioning status"""
1948
+ status = "Enabled" if versioned else "Suspended"
1949
+ return await self ._call_s3 (
1950
+ "put_bucket_versioning" ,
1951
+ Bucket = bucket ,
1952
+ VersioningConfiguration = {"Status" : status },
1953
+ )
1954
+
1955
+ make_bucket_versioned = sync_wrapper (_make_bucket_versioned )
1956
+
1946
1957
async def _rm_versioned_bucket_contents (self , bucket ):
1947
1958
"""Remove a versioned bucket and all contents"""
1948
1959
await self .set_session ()
@@ -2294,7 +2305,7 @@ def commit(self):
2294
2305
if self .buffer is not None :
2295
2306
logger .debug ("Empty file committed %s" % self )
2296
2307
self ._abort_mpu ()
2297
- write_result = self .fs .touch (self .path )
2308
+ write_result = self .fs .touch (self .path , ** self . kwargs )
2298
2309
elif not self .parts :
2299
2310
if self .buffer is not None :
2300
2311
logger .debug ("One-shot upload of %s" % self )
Original file line number Diff line number Diff line change @@ -2729,3 +2729,12 @@ def test_cache_handles_find_with_maxdepth(s3):
2729
2729
assert base_name + "/dir1/fileB" not in f
2730
2730
2731
2731
s3 .invalidate_cache ()
2732
+
2733
+
2734
+ def test_bucket_versioning (s3 ):
2735
+ s3 .mkdir ("maybe_versioned" )
2736
+ assert not s3 .is_bucket_versioned ("maybe_versioned" )
2737
+ s3 .make_bucket_versioned ("maybe_versioned" )
2738
+ assert s3 .is_bucket_versioned ("maybe_versioned" )
2739
+ s3 .make_bucket_versioned ("maybe_versioned" , False )
2740
+ assert not s3 .is_bucket_versioned ("maybe_versioned" )
You can’t perform that action at this time.
0 commit comments