- Fix handling of non-ASCII characters. (jbuck)
- Fix normalization of
CommonPrefixes
to an array when doing aclient.list
operation. (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
options
objects 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
style
option, and automatically chooses it in a few cases:- DNS-uncompliant bucket names (in the US Standard region, where they are allowed)
- When
secure
is 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
endpoint
property 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
domain
configuration option for easy use of other S3-compatible services. (#154, @clee) - Changed and enhanced
signedUrl
: its third parameter is nowoptions
, which can contain averb
string, acontentType
string, and aqs
object. In particular, the newcontentType
capability allows creating pre-signed URLs for PUTs. (#152)
- Fixed
signedUrl
query-string extra-param support for parameters that contained Unicode characters. (#149) - Automatically include STS tokens, when a client is created with the
token
option, in URLs generated fromclient.signedUrl
. (#147, @willwhite)
- Fixed
signedUrl
query-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-token
header is no longer sent when thetoken
option is undefined. (#143, @ianshward)
- Fixed
signedUrl
query-string param support, as introduced in 0.4.7. - Added debug support.
- Added
copyTo
andcopyFileTo
for 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
signedUrl
to 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
list
always givingIsTruncated
astrue
. (#124, @simonwex)
- Fixed
deleteMultiple
when passed keys that start with leading slashes (like they do in the README example). (#121) - Fixed
list
not always returning an array for theContents
property.
- Added
token
configuration option for temporary security tokens. (@corp186, #110)
- Added
list
to 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
agent
configuration 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
port
option, and defaulting to insecure if the port is customized. (@pifantastic, #86) - Made
putStream
give 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.putStream
now also returns a request object, just likeput
. - Added new
putBuffer
method as a higher-level way to PUTBuffer
s. - When uploading text files using
putFile
,charset=UTF-8
is now added to the'Content-Type'
header. (@pifantastic, #83) - Fixed
signedUrl
method, which was last working in Knox 0.0.9. (@shawnburke, #81)
- Added
putFile
"progress" event.
putStream
now 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)putFile
is now based onputStream
, and thus no longer buffers the entire file into memory.- Added
copyFile
method 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
SignatureDoesNotMatch
upon 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
util
require - Support for S3 presigned URLs
- Initial release