mirror of
https://github.com/Nezumi-2711/google-drive-s3.git
synced 2026-09-22 20:01:19 +00:00
36 lines
2.2 KiB
Markdown
36 lines
2.2 KiB
Markdown
# Limitations
|
|
|
|
I.R.I.S. is a narrow S3 compatibility layer. Design frontend features around the behavior below.
|
|
|
|
## Listing is not pageable
|
|
|
|
`max-keys`, `continuation-token`, and `marker` are ignored. I.R.I.S. scans at most 5000 Google Drive nodes and then sets `IsTruncated=true`; it does not provide a continuation token, so additional results cannot be requested. The XML value `MaxKeys=1000` is a fixed compatibility value, not the real scan limit.
|
|
|
|
Use narrow prefixes and `delimiter=/` for a file browser. Do not build an infinite-scrolling full-drive browser.
|
|
|
|
## No server-side rename or move
|
|
|
|
`CopyObject` and `UploadPartCopy` return `501 NotImplemented`. There is no server-side rename or move because both require copying. Implement rename/move as download, re-upload under the target key, then delete the original—subject to bandwidth, time, and error handling.
|
|
|
|
## Unsupported S3 features
|
|
|
|
- `ListBuckets`, `CreateBucket`, and `DeleteBucket`
|
|
- batch `DeleteObjects`
|
|
- object versioning, ACLs, object tags, lifecycle rules, and `x-amz-meta-*` user metadata
|
|
- CopyObject and UploadPartCopy
|
|
- discovering active multipart uploads: `ListMultipartUploads` always reports an empty list
|
|
|
|
Bucket `?acl`, `?versioning`, and `?location` requests are currently treated as regular bucket listing requests rather than errors. Do not rely on this accidental compatibility.
|
|
|
|
## Directories and objects
|
|
|
|
Directories are physical Google Drive folders created from object-key path segments. I.R.I.S. does not create zero-byte directory marker objects. An empty prefix can therefore exist as a Drive folder without an S3 marker object.
|
|
|
|
## Multipart behavior
|
|
|
|
Parts must be uploaded strictly in consecutive order beginning at part 1. Parts are immutable after they have committed. An incomplete upload expires after 24 hours. `ETAG_STYLE=md5` returns Google Drive's file MD5 for completed multipart objects; `ETAG_STYLE=multipart` is available only for clients that require an S3-style composite ETag.
|
|
|
|
## Quotas and plan limits
|
|
|
|
Google Drive's free tier has 15 GB total storage and a 750 GB/day upload limit. Cloudflare applies request-size limits before a request reaches the Worker; use multipart uploads for large browser uploads.
|