Document zip auto-extract for filer and S3 PutObject

Chris Lu authored and Chris Lu committed 2026-10-16 20:30:34 -07:00
1 parent c0c76e9c99
commit ba690987eb
2 files changed
+5 -1

No files matched your search

+1 -1
@@ -135,7 +135,7 @@ For IAM action names used in bucket policies (e.g., `s3:ListBucketMultipartUploa
| ListObjectsV2 | Yes | |
| ListObjectVersions | Yes | See [[S3 Object Versioning]] |
| PostObject | Yes | Browser-based form uploads via POST policy |
| PutObject | Yes | Supports SSE, user metadata (`x-amz-meta-*`), conditional headers |
| PutObject | Yes | Supports SSE, user metadata (`x-amz-meta-*`), conditional headers, zip auto-extract (`?extract=zip`, `X-Seaweedfs-Extract: zip`, or `x-amz-meta-snowball-auto-extract` writes each member as its own object under the key's directory) |
| PutObjectAcl | Yes | |
| PutObjectLegalHold | Yes | |
| PutObjectRetention | Yes | |
+4
@@ -36,6 +36,8 @@ You can append to any HTTP API with &pretty=y to see a formatted json output.
| ttl | time to live, examples, 3m: 3 minutes, 4h: 4 hours, 5d: 5 days, 6w: 6 weeks, 7M: 7 months, 8y: 8 years | empty |
| maxMB | max chunk size | empty |
| mode | file mode | 0660 |
| extract | if "zip", write an uploaded zip archive's members as individual files under the destination directory instead of storing the archive | empty |
| extract.keep | with `extract=zip`, also store the archive itself | false |
| offset | incompatible with `op=append`. Defines the number of bytes from the file beginning to insert the uploaded chunk | empty |
| op | file operation, currently only support "append", incompatible with `offset=`. | empty |
| skipCheckParentDir | Ensuring parent directory exists cost one metadata API call. Skipping this can reduce network latency. | false |
@@ -67,6 +69,8 @@ Examples:
{"name":"report.js","size":5514}
> curl -T test.yaml http://localhost:8888/test.yaml?op=append # append to an file by PUT
{"name":"test.yaml","size":866}
> curl -T bundle.zip "http://localhost:8888/media/?extract=zip" # extract a zip archive server-side
{"name":"bundle.zip","extracted":[{"name":"photo.png","size":12345},{"name":"docs/readme.txt","size":678}]}
> curl -H "Accept: application/json" "http://localhost:8888/javascript/?pretty=y" # list all files under /javascript/
{
"Path": "/javascript",