- Fix normalization of
CommonPrefixesto an array when doing aclient.listoperation. (mackyi) - Fix doing operations with spaces in filenames.
- Throw when an invalid port is passed to the constructor.
- Fix bucket name validation to allow short segments, e.g. in
buck.e.t.
- Add the ability to pass arbitrary destination options to
copyTo. (kof) - Fix a regression where custom ports were not being used properly in the actual HTTP requests. (aslakhellesoy)
- Re-emit errors from the underlying HTTP request when using
putFile.
- No longer modifies
optionsobjects passed toknox.createClient.
- Fixed a potential issue where request listeners were not cleaned up properly if a callback threw an error. (spollack)
- Fixed a regression introduced in 0.8.0 that, in certain cases that only some people were able to reproduce, caused 307 responses to every request.
- Now allows path-style bucket access using
styleoption, and automatically chooses it in a few cases:- DNS-uncompliant bucket names (in the US Standard region, where they are allowed)
- When
secureis not set tofalse, but the bucket name contains a period
- More extensive validation of bucket names, with good error messages, as per the Amazon documentation.
- If using a custom port, reflect it in the
endpointproperty and in any URLs created using the client. (#168, @jbuck) - Fix requests using certain Amazon headers, like the conditional copy headers. (#174, @rrjamie)
- Added real streams2 compatibility: Knox does not kick incoming streams into "old mode," nor does it return streams already kicked into "old mode." (#156, @superjoe30).
- Fixed a rare bug where sometimes callbacks would be called twice, once with an error then with a failed response. (#159)
- Made Node.js 0.8 a requirement in
package.json; it seems like Knox did not work with Node.js 0.6 anyway.
- Added a stopgap fix for Knox in Node.js 0.10 with streams2, although we do not yet expose a fully streams2-compatible interface. (#146, @pifantastic)
- Fixed "socket hang up" errors (hopefully!) by disabling the default HTTPS agent. (#116, fix discovered by @kof)
- Added the
domainconfiguration option for easy use of other S3-compatible services. (#154, @clee) - Changed and enhanced
signedUrl: its third parameter is nowoptions, which can contain averbstring, acontentTypestring, and aqsobject. In particular, the newcontentTypecapability allows creating pre-signed URLs for PUTs. (#152)
- Fixed
signedUrlquery-string extra-param support for parameters that contained Unicode characters. (#149) - Automatically include STS tokens, when a client is created with the
tokenoption, in URLs generated fromclient.signedUrl. (#147, @willwhite)
- Fixed
signedUrlquery-string extra-param support for parameters that contained URL-encodable characters. - Added support for arbitrary verbs (not just
GET) tosignedUrl. (#144, @markdaws)
- The
x-amz-security-tokenheader is no longer sent when thetokenoption is undefined. (#143, @ianshward)
- Fixed
signedUrlquery-string param support, as introduced in 0.4.7. - Added debug support.
- Added
copyToandcopyFileTofor copying files between buckets. (#16, @kof)
- Fixed 403s when sending requests for files with any of
!'()*in their name. (#135, @jeremycondon) - Added support for arbitrary extra parameters to
signedUrl, e.g. for use in generating download URLs. (#133)
- Fixed
signedUrlto work without a leading slash in the filename, like all other Knox methods. (#129, @relistan)
- Bucket names with periods are now allowed again, even with SSL. (#128)
- Added an informative error when using bucket names with periods in them without first turning off SSL. (#125)
- Fixed all requests when passing in
'Content-Type'or'Content-MD5'headers using any casing other than those exact ones, e.g.'content-type'. (#126)
- Fixed
listalways givingIsTruncatedastrue. (#124, @simonwex)
- Fixed
deleteMultiplewhen passed keys that start with leading slashes (like they do in the README example). (#121) - Fixed
listnot always returning an array for theContentsproperty.
- Added
tokenconfiguration option for temporary security tokens. (@corp186, #110)
- Added
listto list all the objects in a bucket. (@kof, #101) - Fixed tests in Node 0.6.x and in non-ET timezones. (@ianshward, #102)
- Fixed
putStream's early-error logic to accept lowercase versions of'Content-Length'as well. (#96) - Added
agentconfiguration option for configurable HTTP agents. (@ianshward, #111)
- No longer specifying
'x-amz-acl'header as'public-read'by default. (@shlevy, #91) - Made the port configurable with the new
portoption, and defaulting to insecure if the port is customized. (@pifantastic, #86) - Made
putStreamgive an early and user-intelligible error when no'Content-Length'header is set, instead of letting Amazon return a cryptic 501 about'Transfer-Encoding'.
- Added
putStream"progress" event to go along withputFile's.putStreamnow also returns a request object, just likeput. - Added new
putBuffermethod as a higher-level way to PUTBuffers. - When uploading text files using
putFile,charset=UTF-8is now added to the'Content-Type'header. (@pifantastic, #83) - Fixed
signedUrlmethod, which was last working in Knox 0.0.9. (@shawnburke, #81)
- Added
putFile"progress" event.
putStreamnow works with every type of stream, not just file streams, and actually streams the data usingpipe, instead of buffering chunks into memory. Note that a'Content-Length'header is now required, if you weren't using one already. (#14 #32 #48 #57 #72)putFileis now based onputStream, and thus no longer buffers the entire file into memory.- Added
copyFilemethod as a higher-level version of existingcopy. - Fixed signing logic for URLs with query parameters outside the Amazon whitelist. (Seth Purcell, #78)
- Leading slashes are now optional again, after becoming mandatory in 0.0.10. (#77)
- Lots of README updates for a more pleasant documentation experience.
- Now using HTTPS by default, instead of HTTP. This can be disabled with the option
secure: false. - Now using the mime package as a dependency instead of bundling an outdated version of it. This should result in a much more complete registry of MIME types for auto-detection when using
putFile. - Trying to use bucket names that are not all lowercase will give an early error instead of failing with
SignatureDoesNotMatchupon attempting any operation. See #44 for more information. - Fixed capturing of HTTP request errors to forward to the callback function for all "higher-level API" methods (i.e. those accepting callbacks). (@shuzhang, #71)
- Fixed README example to use
"image/jpeg"instead of"image/jpg". (@jedwood, #74)
- Added
client.copy(sourceFilename, destFilename, headers)method for copying files within a bucket. - Added
client.deleteMultiple(filenames, headers, cb)method for multi-object delete. - Knox now passes through any Content-MD5 headers supplied to any of its methods, and automatically generates one for
putFile. (@staer, #36) - Fixed a bug with error propagation in
putStream. (@xmilliard, #48) - Fixed requests to querystring resources. (@richtera, #70)
- Updated tests to use Mocha instead of Expresso; now they can be run on Windows.
- Fixed signedUrl signature, needs encodeURIComponent() not escape() to prevent SignatureDoesNotMatch errors on signatures containing plus signs.
- Fixed bug introduced in refactor
- Fixed resource canonicalization
- Fixed; ignoring certain query params when preparing stringToSign. [Rajiv Navada]
- Added
Client#https?(filename)
- 0.4.x support
- Removed
utilrequire - Support for S3 presigned URLs
- Initial release