-
Notifications
You must be signed in to change notification settings - Fork 148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3.0.0 #392
Conversation
This also updates package.json so that ./test isn't included in releases on npm.
e8fe806
to
22f0091
Compare
This introduces slightly breaking changes to the signature of s3rver.run() and s3rver.close() since they can now return promises if no callback is provided.
(btw tests are passing on Node 8, but it looks like Node 10 breaks our app so this release is a bit overdue) This is working up to be a pretty big release. I do want to also address #110, #153, #306, and #330 before cutting 3.0 since I think those are all pretty essential features. Working with the old code was a pain and didn't leave much room for fixing/adding new features, so I'm not personally up for maintaining the 2.x branch while Node v6 still has a couple months of maintenance before EOL. @leontastic what are your thoughts on making a new major release without Node 6 support? |
In particular, this focuses on * improved error handling and error formatting * making S3 features more modular * significantly more accurate static website behavior * simplify implementing new features in the future
@kherock thanks for your work on this, I find this to be a really useful tool and use it in a couple of different projects currently. I have came across scenario where I need to use pre-signed urls, so seeing this feature go in would be great for next release! Thanks |
@kherock I am OK without Node 6 support in next major release. |
This also corrects error handling to preserve CORS headers and exclude x-amz-error- headers from HTML responses.
They are undocumented, and the current behavior doesn't match S3
@leontastic I'm planning on having everything I want for 3.0 finished by the weekend - in the meantime can we get 2.2.9 published? |
@kherock - Hi! Thank you for all of your hard work! I have added you as a maintainer to s3rver on npm. You should be able to push releases now :-) |
Koa rewrite
This contains major breaking changes to the CLI and programmatic interface. Bucket configurations can be set through the S3 API at runtime or via S3rver configuration options.
… and bucket deletion
… and deletion of buckets with custom configuration
Separate bucket configs for CORS and website policies
Sorry that this hadn't seen any updates in a while, I got really busy the past few weeks (should be starting a new job next week 🤞). In the meantime I finally got v2.2.9 published. I don't have an ETA for this release, but I think I might patch out the last outstanding bug (#390) and cut it there. I'll try to have everything else show up in v3.1. Thanks for being patient. |
…equest behavior This includes full support for signature version 2 and partial support for version 4. This also supports specifing x-amz-meta-* headers via query parameters and overriding response headers via response-* query parameters.
Support verification of signed requests and other special presigned request behavior
3.0.1 is published! The CLI script had a bad path in the initial 3.0.0 release and was fixed for 3.0.1. ListParts and POST uploads are planned for 3.1. |
Working changelog:
Breaking changes:
S3RVER
for both the Access Key ID and Secret Access Key.new S3rver(opts)
is now a Koa instance. (Koa rewrite #391, resolves Use Koa instead of Express #107)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()
s3rver.s3Event
has been removed in interest of keeping the library lightweight. Uses3rver.on('event', handler)
instead.Features:
opts.configureBuckets
(or--configure-bucket
in the CLI). Existing buckets will have their configurations updated with a warning.x-amz-website-redirect-location
metadata (Separate bucket configs for CORS and website policies #397)response-*
query params (Support verification of signed requests and other special presigned request behavior #419)Support ListParts APISupport specifying a custom storage backend viaopts.store
Fixes:
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.Host: <bucket-name>
) should work regardless of static website configuration