Updated S3 API FAQ (markdown)

Adam Lamar 2022-02-11 15:17:10 -07:00
parent 42927280d0
commit 752f3d7f8d

@ -38,3 +38,16 @@ So bucket deletion is as simple as deleting the LevelDB instance files and the c
Having separate LevelDB instance, or separate SQL tables, will help to isolate the storage and improve performance also.
## Filer Metadata Store Growth
Due to the semantics of the S3 API, empty directories (aka prefixes) aren't shown. However, an entry is still stored in the filer metadata store. When access patterns create many unique directories and then remove all the objects inside those directories, the filer metadata store can grow unbounded with orphaned directories. These directories are visible in the filer metadata store itself, but not using the S3 API.
If the filer argument `-allowEmptyFolder=false` is set, the orphaned directories are cleaned up during list requests for non top-level directories. Simply list an existing, non bucket-level directory.
Example using rclone:
```
rclone lsf seaweedfs:my-bucket/dir
```
If the directory `dir` exists in `my-bucket`, the orphaned metadata will be cleaned up. Note that `rclone ls` does not trigger cleanup, but `rclone lsf` will.