Skip to content

Releases: jamhall/s3rver

v3.0.2

25 Mar 20:08
Compare
Choose a tag to compare

Fixes:

  • Using vhost-style requests would resolve with a bucket name of undefined (#421)

Tooling:

  • Update dependency aws-sdk to v2.427.0 (#423)

v3.0.0-1

22 Mar 02:59
Compare
Choose a tag to compare

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 at s3rver.httpServer.
  • s3rver.getMiddleware() was renamed to just s3rver.middleware()
  • The RxJS Observable s3rver.s3Event has been removed in interest of keeping the library lightweight. Use s3rver.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 when Accept: 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

21 Mar 06:35
Compare
Choose a tag to compare

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:

v2.2.8

28 Jan 16:39
Compare
Choose a tag to compare

Fixes:

  • Fix range handling for oversized and out of range situations #373

Tooling:

v2.2.7

04 Dec 02:53
Compare
Choose a tag to compare

Fixes:

  • Exit with non-zero status with misconfigured data directory #325
  • Handle the case where the access-control-request-header is not provided #347

Tooling:

v2.2.6

12 Sep 21:57
Compare
Choose a tag to compare

Fixes:

  • S3Event's eventTime should always be a new date (#290)

Tooling:

v2.2.5

27 Jul 20:11
Compare
Choose a tag to compare

Fixes:

  • Avoid monkeypatching the close method on the returned server instance #275
  • Use RxJS pipeable operators #276

Tooling:

v2.2.4

03 May 15:02
Compare
Choose a tag to compare

Fixes:

  • Sending empty list of objects with s3.deleteObjects causes a crash. (#223)
  • Update dependency xmlbuilder to version 10.0.0 (#222)
  • Update dependency fs-extra to version 6.0.0 (#226)

Tooling:

v2.2.3

06 Apr 20:00
Compare
Choose a tag to compare

Fixes:

  • Decode x-amz-copy-source to support spaces & special characters (#207)

Tooling:

v2.2.2

15 Mar 20:37
Compare
Choose a tag to compare

Fixes:

  • Correctly format XML date (#182)
  • Include correct IsTruncated value in listObjects response #187
  • Include bucket name in listObjects XML response (Regression) #186
  • Include missing size and MD5 in certain event types (Regression) #188

Tooling:

  • Use co-mocha for async tests (#177)
  • Update aws-sdk (#184)