Skip to content

Commit 880f5b6

Browse files
author
Martin Durant
committed
Merge branch 'main' into release
2 parents f113f64 + 314e986 commit 880f5b6

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

s3fs/core.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1637,6 +1637,14 @@ async def _bulk_delete(self, pathlist, **kwargs):
16371637
self.invalidate_cache(self._parent(path))
16381638
await self._call_s3("delete_objects", kwargs, Bucket=bucket, Delete=delete_keys)
16391639

1640+
async def _rm_file(self, path, **kwargs):
1641+
bucket, key, _ = self.split_path(path)
1642+
1643+
try:
1644+
await self._call_s3("delete_object", Bucket=bucket, Key=key)
1645+
except ClientError as e:
1646+
raise translate_boto_error(e)
1647+
16401648
async def _rm(self, path, recursive=False, **kwargs):
16411649
if recursive and isinstance(path, str):
16421650
bucket, key, _ = self.split_path(path)

s3fs/tests/test_s3fs.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2162,3 +2162,11 @@ def test_upload_recursive_to_bucket(s3, tmpdir):
21622162
for f in files:
21632163
open(f, "w").write("hello")
21642164
s3.put(folders[0], "newbucket", recursive=True)
2165+
2166+
2167+
def test_rm_file(s3):
2168+
target = test_bucket_name + "/to_be_removed/file"
2169+
s3.touch(target)
2170+
s3.rm_file(target)
2171+
assert not s3.exists(target)
2172+
assert not s3.exists(test_bucket_name + "/to_be_removed")

0 commit comments

Comments
 (0)