Releases: jamhall/s3rver
Releases · jamhall/s3rver
v3.0.2
v3.0.0-1
Breaking changes:
- You must now specify a specific set of credentials for signed requests to work. Use
S3RVER
for both the Access Key ID and Secret Access Key. - The underlying app returned by
new S3rver(opts)
is now a Koa instance. (#391)- Additionally, some constructor options have been renamed and moved.
s3rver.run([callback])
no longer returns a HTTP server instance. The HTTP server created is set ats3rver.httpServer
.s3rver.getMiddleware()
was renamed to justs3rver.middleware()
- The RxJS Observable
s3rver.s3Event
has been removed in interest of keeping the library lightweight. Uses3rver.on('event', handler)
instead. - Bucket features are no longer globally configured. CORS and static website configurations can be set through S3's API or in custom bucket configurations initialized at server startup.
Features:
- You can now have preconfigured buckets created at server startup via
opts.configureBuckets
(or--configure-bucket
in the CLI). Existing buckets will have their configurations updated with a warning. - Support the S3 cors and website REST APIs
- This comes with per-bucket configuration of these features (and any others implemented in the future) (#397)
- Support for following redirects specified by
x-amz-website-redirect-location
metadata (#397) - Stubs for most other bucket actions (they now report 501 Unimplemented)
- Signature verification and presigned URLs (#419)
- Support specifying custom metadata through query parameters (#419)
- Overriding response headers in presigned requests via
response-*
query params (#419)
Fixes:
- Support more regions for buckets specified via subdomain
- For example, eu-west-1 only offers an endpoint at s3.eu-west-1.amazonaws.com (with a period instead of a hyphen after .s3)
- Buckets operating in "website mode" behave more predictably and should always serve XML-formatted API responses. Real S3 accomplishes this by having totally separate listeners at the DNS/server level, we reconcile this with a single listener by inpecting the Host header and accepted content type.
- This fixes the "Unexpected token ..." errors reported by the AWS SDK
- More specifically, S3rver will prioritize Host and fall back to the Accept header. For example, when applicable, requests with
Host: <bucket-name>.s3[.<region>].amazonaws.com
will always have XML-formatted responses, but requests with
Host: <bucket-name>.s3-website.<region>.amazonaws.com
will always have HTML-formatted responses. Otherwise, S3rver will return HTML whenAccept: text/html
is present.
- Virtual Host-style requests (specifying
Host: <bucket-name>
) should work regardless of static website configuration - Metadata missing from multipart uploads (#397)
- Querying an object for a key stored without a trailing slash would incorrectly match keys stored with one (#397)
- Can't store keys using reserved characters under Windows (#420)
- All error responses reported by S3rver have been revisited and revised to look nearly identical to real S3
v2.2.9
Features:
- Validate and report illegal AllowedMethods in CORS configurations (#385)
Fixes:
- Fix ranged requests on Windows and other environments (#384)
- Return error if a request to delete multiple objects has no objects specified (#386)
- Fix empty directory cleanup when deleting a deeply nested key (#387)
Tooling: