- Fix encoding of filenames with
+
or?
characters in them. (hurrymaplelad)
- Remove
Expect: 100-continue
headers from PUT and copy commands. We weren't using them correctly anyway. - Add
extraHeaders
option tosignedUrl
. (dweinstein)
- Update dependencies: Knox will now no longer work on Node 0.8.
- Fix files with
#
in their filename not working. (kristokaiv) - Fix a variety of intermittent double-callback bugs, e.g. both response and error, or two errors. If there are two errors, or an error on the request after the response is delivered, those are now swallowed. (willisblackburn, domenic)
- Fix missing return value of
client.deleteFile
.
- Fix mapping of
us-east-1
region to bes3.amazonaws.com
, instead ofs3-us-east-1.amazonaws.com
. (coen-hyde)
- Fix reported sporadic error with
client.list
getting null data by reporting it instead of crashing. (pauliusuza)
- Fix double-encoding bug introduced in 0.8.7, where using
client.list
with a prefix containing special characters would fail. (colinmutter)
- 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