Andrew Gaul
fe4e36a0ea
Emit InvalidPart when MPU part has invalid ETag
2015-05-02 11:32:24 -07:00
Andrew Gaul
ceb805ef0a
Emit InvalidPart when missing an MPU part
2015-05-02 11:08:09 -07:00
Andrew Gaul
e947942f82
Quote ETag during uploadPart
2015-05-01 14:36:38 -07:00
Andrew Gaul
4a49f32f17
Native multipart upload support
...
Fixes #2 .
2015-05-01 13:49:37 -07:00
Andrew Gaul
89279f5c58
Factor out calls to setHandled
2015-05-01 11:17:02 -07:00
Andrew Gaul
7fde437a7b
Add XML elements to S3Exception
...
This allows more descriptive errors, e.g., giving argument name when
returning InvalidArgument.
2015-05-01 05:29:36 -07:00
Ka-Hing Cheung
abc1bc4910
parse authorization header backwards
...
this is to accomodate using s3proxy with swift backend, which has
a colon in the access key
2015-04-28 18:07:03 -07:00
Ka-Hing Cheung
8fa555d093
handle empty prefix as if it's missing
2015-04-27 17:38:01 -07:00
Andrew Gaul
4a74a29604
Prefer ThrowingCallable over ExpectedException
2015-04-22 13:30:32 -07:00
Andrew Gaul
ea5f6a9363
Test URL signing using AWS SDK
...
jclouds generic S3 provider does not implement the correct logic for
this.
2015-04-21 19:56:49 -07:00
Andrew Gaul
5f1c4979ef
Remove multipart manifest during complete upload
2015-04-20 18:21:18 -07:00
Andrew Gaul
43b21829c7
Set ACLs during copy object
2015-04-18 04:38:03 -07:00
Andrew Gaul
38210cc498
Emit LastModified and ETag during copy object
...
Regression from ea1a42dcd8
.
2015-04-18 04:37:20 -07:00
Andrew Gaul
9d072e4e11
Handle non-existent source blob during copy
2015-04-18 03:58:15 -07:00
Andrew Gaul
6350f6d26f
Validate Content-Length before reading entity body
2015-04-17 19:30:36 -07:00
Andrew Gaul
17e9f71bb4
Factor out ByteSource payload
2015-04-17 18:24:56 -07:00
Andrew Gaul
ea1a42dcd8
Add writeSimpleElement helper
2015-04-17 15:26:55 -07:00
Andrew Gaul
9a5d17fd62
Ignore case when matching header values
2015-04-17 15:09:52 -07:00
Andrew Gaul
f1dec1e3fc
Test AWS SDK with v2 signature
2015-04-17 14:41:57 -07:00
Andrew Gaul
5f9a1b519d
Enable ACLs for local blobstores
2015-04-09 13:38:51 -07:00
Andrew Gaul
7b937c1571
Add native object copy support
...
Fixes #46 .
2015-04-09 10:28:11 -07:00
Ka-Hing Cheung
35b37c34a9
allow S3Proxy to start without a blobstore
...
because the mapping maybe provided by the callback
2015-04-06 11:01:02 -07:00
Andrew Gaul
7271a5ace6
Compare identity in blobstore locator
...
This allows S3Proxy to return the more specific InvalidAccessKeyId
instead of SignatureDoesNotMatch. Addresses a s3-tests regression in
s3tests.functional.test_s3:test_list_buckets_invalid_auth.
2015-04-04 12:36:24 -07:00
Andrew Gaul
4929573df9
Pass builder to constructor
2015-03-30 22:34:07 -07:00
Andrew Gaul
e0a1560cb2
Use ExpectedException to handle test failures
...
Also prefer matching AWS error code over the message.
2015-03-29 13:02:55 -07:00
Andrew Gaul
a3043c1e6f
Suppress serialization warning
2015-03-25 17:03:57 -07:00
Ka-Hing Cheung
4450c6aebb
add a way to lookup blobstore with a callback
...
remove the old map based lookup
2015-03-25 16:59:02 -07:00
Ka-Hing Cheung
4ca219470e
reordered blobstore parameter
2015-03-25 16:59:02 -07:00
Ka-Hing Cheung
87bed283cb
Allow multiple account providers
...
This allows different backend blobstores to be configured at
runtime, based on the request access key. As a result different
frontend auth can also be used. Currently this can only be done
programmatically and not through properties config file.
2015-03-24 13:23:50 -07:00
Andrew Gaul
b036318ec6
Update copyright year to 2015
2015-03-21 23:51:24 -07:00
Andrew Gaul
02c1e8f77f
Move main from S3Proxy to Main class
2015-03-21 23:51:23 -07:00
Andrew Gaul
103f949627
Centralize ContainerNotFoundException handling
2015-03-18 19:26:25 -07:00
Andrew Gaul
81a5024bd3
Include jclouds properties in overrides
2015-03-18 19:21:31 -07:00
Andrew Gaul
6b5f9fd7f3
Remove unused s3Context
...
This test uses AmazonS3Client instead of jclouds client.
2015-03-17 23:55:48 -07:00
Andrew Gaul
58800de7bf
Expect AWSResponseException
2015-03-17 22:57:27 -07:00
Andrew Gaul
70a7a6ecf6
Upgrade to Modernizer Maven Plugin 1.3.0
...
Changelog:
https://github.com/andrewgaul/modernizer-maven-plugin/releases/tag/modernizer-maven-plugin-1.3.0
2015-03-17 17:46:25 -07:00
Andrew Gaul
209f3e60e4
Narrow exception handling scope
2015-03-13 18:58:27 -07:00
Andrew Gaul
27900bf4de
Allow setting object ACL during PUT
...
References #44 .
2015-03-12 17:42:40 -07:00
Andrew Gaul
2b29bcd588
Disable AWS SDK SSL verification
2015-03-12 17:38:51 -07:00
Andrew Gaul
5f117c15a6
Add SeparatorWrap check
...
This ensures that chained method calls have the dot operator at the
beginning of the line.
2015-03-12 17:22:55 -07:00
Andrew Gaul
7dbdc4faf8
Handle default private ACL
...
References:
http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html
http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html
2015-03-06 18:02:00 -08:00
Andrew Gaul
abe6b9ddf1
Automatically use MPU for Azure when needed
...
All providers except for Azure support at least S3's 5 GB single-part
upload limit. The previous configuration knob was suboptimal since it
used multi-part upload for small blobs.
2015-03-06 17:28:20 -08:00
Timur Alperovich
1d7af6acae
Add a test for failure when using v4 signatures.
...
Adds a unit test with the Amazon Java SDK for failures when submitting
v4-signed requests. We use the Amazon Java SDK while waiting for the
issues JCLOUDS-480 to be resolved (implementing v4 signatures).
2015-03-05 23:37:25 -08:00
Andrew Gaul
c2724b4399
Introduce S3Exception
...
This elides some boilerplate and ensures that we consistently handle
errors.
2015-03-04 12:49:09 -08:00
Andrew Gaul
7e0c817660
Add NotImplemented error code
2015-03-04 10:38:57 -08:00
Andrew Gaul
cbac36efdd
Avoid unnecessary String concatenation
2015-03-03 16:50:38 -08:00
Ka-Hing Cheung
335e735c5b
provide reason for access denied
2015-03-03 12:47:33 -08:00
Andrew Gaul
71d3a67b95
Explicitly add Content-Length
...
Previously InitiateMultipartUpload used the incorrect length. Found
with s3fs integration tests. References #2 .
2015-03-02 17:00:41 -08:00
Andrew Gaul
e90074afc0
Add helper to emit Owner stanza
2015-03-02 16:08:09 -08:00
Andrew Gaul
0337a4e4bc
Handle zero-length multi-part upload
2015-03-02 16:08:09 -08:00
Andrew Gaul
b0b1f4e9fa
Emulate multipart upload with single-part uploads
...
This approach requires three times as many operations as the optimal
approach. Implementing this correctly requires exposing the
underlying multipart operations in jclouds. Most s3-tests pass but
test_list_multipart_upload still fails:
References #2 .
2015-03-02 14:37:16 -08:00
Andrew Gaul
11c93a43a8
Use correct content length during copy
...
Previously replacing the metadata would zero out the object contents.
2015-03-02 14:01:00 -08:00
Andrew Gaul
a65221091f
Use maven-assembly-plugin instead of Maven Shade
...
This works around MSHADE-183 which prevents use with Maven 3.2.5 and
has caused recent Travis CI failures. Fixes #38 .
2015-02-22 23:22:05 -08:00
Andrew Gaul
52118ced78
Add support to set and get canned object ACLs
...
Currently only support private and public-read access.
2015-02-22 18:48:08 -08:00
Andrew Gaul
c8e4279853
Propagate Exception if not HttpResponseException
2015-02-20 17:22:47 -08:00
Andrew Gaul
613da2f3ec
Use builder to create S3Proxy
...
Also hoist sanity checks out of main.
2015-02-20 11:01:37 -08:00
Andrew Gaul
2e82478f0e
Prefer static imports for Preconditions
2015-02-20 10:50:37 -08:00
Timur Alperovich
51e7f3c22a
Expose the Jetty state in the S3Proxy interface.
...
The commit adds a getState() method, which exposes the Jetty state
to the caller. This is useful to check whether the server is running
or is in some other state.
2015-02-18 16:13:45 -08:00
Andrew Gaul
b85ab17316
Correct typo
2015-02-18 11:34:28 -08:00
Andrew Gaul
7e61856db1
Support native multi-object delete
2015-02-15 01:07:10 -08:00
Andrew Gaul
9a261a62b0
Add support to set and get canned container ACLs
...
Currently only support private and public-read access.
2015-02-13 15:43:58 -08:00
Andrew Gaul
4ebbce7956
Run unknown parameter test
...
JCLOUDS-258 allows use of MPU with the generic S3 provider.
2015-02-12 18:08:29 -08:00
Andrew Gaul
074c36baab
Add test harness to execute s3-tests
...
Also add Travis configuration.
2015-01-22 17:14:45 -08:00
Andrew Gaul
23f8e772da
Upgrade to jclouds 2.0.0-SNAPSHOT
...
This release allows larger than 2 GB single-part blobs and supports
object metadata with the filesystem provider on Linux and Windows. It
also includes support for object size in container lists. Fixes #1 .
Fixes #6 .
2015-01-22 14:03:18 -08:00
Andrew Gaul
fb0f321303
Improve CommonPrefixes support
...
References #5 .
2015-01-22 13:30:28 -08:00
Andrew Gaul
7815a79548
Emit NotImplemented with unknown parameters
...
This ensures that requests like multi-part upload and version
operations emit the intended responses.
2015-01-19 20:06:58 -08:00
Andrew Gaul
bae51b500a
Reduce exception handling scope
2015-01-16 15:56:08 -08:00
Andrew Gaul
e1c7b22b7d
Handle NoSuchBucket during copy object
2015-01-16 15:14:53 -08:00
Andrew Gaul
d81ee81a86
Handle null from HttpResponseException.getResponse
2015-01-15 18:36:14 -08:00
Andrew Gaul
05b63365bf
Emit bogus CreationDate when not present
2015-01-15 18:23:22 -08:00
Andrew Gaul
7dff664c17
Add prefix to CommonPrefixes
...
Addresses s3cmd tests failures.
2015-01-14 12:24:23 -08:00
Andrew Gaul
5b5e9877b9
Improve support for x-amz-metadata-directive
...
Replace content metadata in addition to user metadata. Addresses
s3cmd tests failures.
2015-01-13 23:32:46 -08:00
Andrew Gaul
a6133a60a6
Honor force multipart in emulated copy object
2015-01-13 23:28:09 -08:00
Andrew Gaul
86665450ca
URI decode copy source path
...
Fixes s3cmd tests failures seen with Unicode object names. Follow on
to b91b8e25d7
.
2015-01-13 18:44:59 -08:00
Andrew Gaul
e3c49331ac
Emit UTF-8 in object listing and multi-delete
...
Fixes s3cmd tests failures seen with Unicode object names.
2015-01-13 17:50:47 -08:00
Andrew Gaul
946d34b03b
Parse XML with StAX
...
This addresses issues with object names containing special characters.
Fixes #25 .
2015-01-11 20:45:56 -08:00
Andrew Gaul
f3221cb136
Emit XML via StAX
...
This addresses issues with object names containing special characters.
References #25 .
2015-01-11 18:56:39 -08:00
Ka-Hing Cheung
e955b998fb
use static function in URLDecoder
2015-01-09 15:31:45 -08:00
Ka-Hing Cheung
b91b8e25d7
uri decode path before passing them to lower layers
2015-01-06 15:54:36 -08:00
Andrew Gaul
15e11975a2
Allow kernel to pick S3Proxy port in tests
2015-01-06 15:05:21 -08:00
Ka-Hing Cheung
2dd3dac970
add test for % in blob name
2015-01-06 14:48:03 -08:00
Andrew Gaul
ff551248a1
Fail V4 signature requests with InvalidArgument
...
This allows V4 clients like s3cmd to retry with V2 signatures.
References #24 .
2015-01-06 14:42:29 -08:00
Andrew Gaul
0eac109276
Add logback.xml only to with jar-with-dependencies
2015-01-05 18:51:56 -08:00
Ka-Hing Cheung
dbd7304e65
make S3Proxy contructor public
2015-01-05 11:39:05 -08:00
Andrew Gaul
1f9fd7fa21
Consistently emit XML prologue and AWS namespace
2014-12-29 23:18:49 -08:00
Andrew Gaul
a2c6bfc4cc
Use correct container name with testHttpClient
...
This test still fails due to authorization issues.
2014-12-29 17:45:43 -08:00
Andrew Gaul
807f6ef47c
Explicitly handle get location
2014-12-29 16:29:30 -08:00
Andrew Gaul
d33324797a
Consistently flush before closing Writer
2014-12-28 14:52:36 -08:00
Andrew Gaul
711c0821d1
Sort subresources
...
This ensures deterministic signatures when requests have multiple
subresources, e.g., multipart uploads.
2014-12-21 23:11:59 -08:00
Andrew Gaul
161fd3d847
Include delete as a signed resource
...
This allows multi-object delete to work and addresses a regression
introduced by e5c12c1777
.
2014-12-03 22:59:36 -08:00
Andrew Gaul
ae3598dbfb
Emit InvalidAccessKeyId on access key mismatch
...
References #5 .
2014-12-03 22:39:41 -08:00
Andrew Gaul
40c4d099d9
Handle invalid Content-Length during create bucket
...
References #5 .
2014-12-03 18:36:15 -08:00
Andrew Gaul
3b2bd615a0
Simplify parsing of Content-Length and Content-MD5
...
HttpServletRequest uses null to indicate a header value which is
present but has no value. Use empty String instead.
2014-12-03 04:30:54 -08:00
Ka-Hing Cheung
e5c12c1777
more required parameters needed for signing
...
allows s3cmd info s3://bucket/ to work
2014-11-20 04:31:23 +01:00
Ka-Hing Cheung
617b3ae3e9
more compatibility fixes for s3cmd
...
s3cmd uses virtual hostname for bucket name, with the host header
including the port. need to strip out the port to find out the
bucket name
2014-11-18 10:14:16 +01:00
Ka-Hing Cheung
004d12761e
http header name is case insensitive
...
fixes compatibility with s3cmd
2014-11-18 03:45:58 +01:00
Andrew Gaul
559b1d36dd
Clean up signer
2014-10-27 15:29:53 -07:00
Andrew Gaul
5742323a70
Remove Azure ETag hack
...
Previously jclouds required ETag to be a hex-encoded Content-MD5.
2014-10-27 15:21:40 -07:00
Andrew Gaul
9a81b73324
Add more Checkstyle rules
2014-10-24 00:28:58 -07:00
Andrew Gaul
4a58f00885
Add Google Cloud Storage provider
...
Also convert ETag from GCS-style base64 to AWS-style base16.
2014-10-24 00:23:51 -07:00
Andrew Gaul
6792798347
Do not require date header w/ none authentication
...
AWS S3 uses a date header to prevent replay attacks on signed
requests. None authentication should not require this header.
Regression from 8c623c179c
. Fixes #17 .
2014-10-14 17:18:02 -07:00
Andrew Gaul
4baaca86f9
Allow System properties to override configuration
...
Fixes #15 .
2014-10-10 07:09:01 -07:00
Andrew Gaul
99a00499ca
Set Content-Type only when provided by client
2014-09-05 12:51:07 -07:00
Andrew Gaul
c6115546c4
Configure jclouds SLF4J module
2014-09-05 12:26:32 -07:00
Andrew Gaul
136dd679c4
Enforce consistent operator wrapping style
2014-08-31 13:59:45 -07:00
Andrew Gaul
7883dd0574
Remove unneeded file, method and parameter checks
2014-08-31 13:59:26 -07:00
Andrew Gaul
016170f83f
Clean up get handling
2014-08-28 19:27:40 -07:00
Andrew Gaul
e2816190aa
Emit fake key ACLs
...
References #5 .
2014-08-28 18:50:27 -07:00
Andrew Gaul
15d885d370
Emit ETag with key metadata
...
References #5 .
2014-08-28 18:50:08 -07:00
Andrew Gaul
f5ab87241c
Emit InvalidBucketName on non-alphanumeric name
...
References #5 .
2014-08-28 18:30:17 -07:00
Andrew Gaul
f8b5dde61f
Enforce indentation via Checkstyle
2014-08-28 17:42:38 -07:00
Andrew Gaul
f39ea39d93
Enforce 80 character line length via Checkstyle
2014-08-28 17:40:46 -07:00
Andrew Gaul
452d8d366c
Add support for virtual host buckets
...
Fixes #8 .
2014-08-26 19:51:15 -07:00
Andrew Gaul
34db5cae9a
Emit InvalidArgument for malformed Authorization
...
Also keep identity and signature as distinct values. References #5 .
2014-08-25 19:18:29 -07:00
Andrew Gaul
7b6f86b3fe
Ensure ordering for CommonPrefixes
2014-08-25 19:18:29 -07:00
Andrew Gaul
6dde404e88
Emit not implemented for put and get object ACL
2014-08-24 06:29:09 -07:00
Andrew Gaul
8c623c179c
Require time reference point for requests
...
Requests must have a Date header, X-Amz-Date header, or Expires
parameter.
2014-08-24 05:53:12 -07:00
Andrew Gaul
ce3d7edad3
Add expiration to query string authorization
...
Also repair support for query string authorization, regression from
d74a409
.
2014-08-23 19:09:05 -07:00
Andrew Gaul
84bfb27d66
Prefer Collections.list over Enumeration
2014-08-23 16:58:48 -07:00
Andrew Gaul
820b884169
Emit BadDigest for mismatched MD5 hash
...
S3 uses InvalidDigest for a malformed MD5 hash.
2014-08-23 15:40:16 -07:00
Andrew Gaul
d74a409f87
Emit AccessDenied for empty Authorization header
2014-08-23 15:29:06 -07:00
Andrew Gaul
8042e9b490
Ensure that ETag has quotes
2014-08-22 14:38:19 -07:00
Andrew Gaul
b8e732c794
Map Swift HTTP 422 to InvalidDigest
...
References #5 .
2014-08-22 10:01:55 -07:00
Andrew Gaul
21a708a38d
Remove newlines which the AWS SDK rejects
2014-08-21 22:49:36 -07:00
Andrew Gaul
65074b6338
Consistently propagate IOException
...
Jetty automatically returns 500 internal error to clients and logs the
exception stack trace.
2014-08-21 22:39:55 -07:00
Andrew Gaul
c44cfdfbd4
Honor --version
2014-08-21 22:21:09 -07:00
Andrew Gaul
f346e703c7
Implement object multi-delete
...
Currently emulated with single object delete since jclouds does not
expose a portable multi-delete method. References #5 .
2014-08-21 22:01:12 -07:00
Andrew Gaul
d7cd5e107f
Add String constant for AWS xmlns
2014-08-21 21:41:05 -07:00
Andrew Gaul
90261c1ce7
Sanity check Date header
...
References #5 .
2014-08-21 13:39:12 -07:00
Andrew Gaul
886c27e63a
Emit BucketAlreadyExists
...
References #5 .
2014-08-20 23:38:51 -07:00
Andrew Gaul
1f8d9f47a8
Consistently emit NoSuchBucket and NoSuchKey
...
Unfortunately jclouds does not consistently throw
ContainerNotFoundException. References #5 .
2014-08-20 23:38:10 -07:00
Andrew Gaul
0cc7a1390a
Factor out S3 error codes into enum class
2014-08-20 18:45:06 -07:00
Andrew Gaul
fc8613b4f8
Convert Azure-style ETag into S3-style ETag
2014-08-18 18:28:51 -07:00
Andrew Gaul
da512876de
Use unique container names in tests
...
This commit improves test compatibility with real blobstores.
2014-08-18 18:28:51 -07:00
Andrew Gaul
02f68372e0
Remove bucket after tests complete
2014-08-18 15:23:24 -07:00
Andrew Gaul
694c033848
Only send Expires header when present in request
...
Previously S3Proxy incorrectly compared against 0 instead of -1,
emitting bogus Expires headers. Fixes #13 .
2014-08-18 15:23:20 -07:00
Andrew Gaul
ad1c01057a
Configure jclouds SLF4J module
...
Also use jclouds-slf4j instead of slf4j-simple to avoid multiple
bindings.
2014-08-18 15:23:18 -07:00
Andrew Gaul
ed971cdcbe
Do not set endpoint in overrides
...
Previously tests used the same endpoint for both client-s3proxy and
s3proxy-server.
2014-08-18 12:00:12 -07:00
Andrew Gaul
c6a87d6816
Handle null Content-MD5 in response
2014-08-18 11:51:50 -07:00
Andrew Gaul
ba3171a8e7
Add findbugs-maven-plugin
...
Address one bug and ignore XSS bugs.
2014-08-18 11:08:44 -07:00
Andrew Gaul
bd2b055f1b
Add option to force proxy-server multi-part upload
...
This allows use of S3Proxy with object stores with small single-part
object sizes, e.g., Azure. Fixes #12 .
2014-08-17 23:42:37 -07:00
Andrew Gaul
64ce6a1fa8
Move constants to utility class
2014-08-17 23:21:58 -07:00
Andrew Gaul
c042fa6165
Add support for listening on HTTPS
...
Fixes #3 .
2014-08-14 01:28:52 -07:00
Andrew Gaul
5bca38ca24
Configure tests via s3proxy.conf
2014-08-14 01:02:51 -07:00
Andrew Gaul
0b18a976f3
Log duplicate headers
2014-08-13 18:16:10 -07:00
Andrew Gaul
b47e8387fd
Enable Jetty STRICT mode to get true header values
...
Previously Jetty rewrote header values such as the Content-Type, which
broke signing with the AWS SDK. Reference:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=414449
2014-08-13 18:14:06 -07:00
Andrew Gaul
874766eade
Remove newlines which the AWS SDK rejects
...
Reference:
http://stackoverflow.com/questions/5138696/org-xml-sax-saxparseexception-content-is-not-allowed-in-prolog
2014-08-13 17:13:05 -07:00
Andrew Gaul
73d647f46e
Strip leading / from x-amz-copy-source header
...
Previously S3Proxy did not update copySourceHeader. Fixes #10 .
2014-08-13 15:24:31 -07:00
Andrew Gaul
e59e2660dd
Allow creation of public-read buckets
...
jclouds portable abstraction does not allow finer-grained permissions
than public-read and does not allow changing this policy later.
2014-08-13 01:29:23 -07:00
Andrew Gaul
1ee05fed62
Use x-amz-copy-source header without leading /
...
Fixes #10 .
2014-08-13 00:51:41 -07:00
Andrew Gaul
63bd5a95cf
Add headers at trace logging level
2014-08-12 17:23:36 -07:00
Andrew Gaul
0de7d2aa8f
Support half-open range requests.
...
Also emit the correct status code 206. Fixes #9 .
2014-08-12 12:26:53 -07:00
Andrew Gaul
5346e5e181
Address Checkstyle violations
2014-08-11 23:08:59 -07:00
Andrew Gaul
84c33c9b42
Emit NoSuchBucket on getBlob
2014-08-11 19:22:03 -07:00
Andrew Gaul
b65d6e2ce5
Correct ListBucket indentation
2014-08-11 17:12:05 -07:00
Andrew Gaul
87edea10e9
Support creating buckets in user-specified regions
2014-08-11 17:11:08 -07:00
Andrew Gaul
41046c966a
Reduce log level of signer
2014-08-11 17:10:56 -07:00
Andrew Gaul
f3392d13a2
Simplify ListBucket parsing
2014-08-10 17:54:33 -07:00
Andrew Gaul
e35d059e1d
Remove special-case for listing with max-keys=0
...
The existing list logic handles this; the underlying jclouds request
confused me and will be corrected in jclouds/jclouds#475 .
2014-08-10 13:12:08 -07:00
Andrew Gaul
8e63a6c93e
Support query string request authentication
2014-08-05 13:07:05 -07:00
Andrew Gaul
8f24e8cb7e
Implement server-side copy support
...
S3Proxy implements this via proxy-side copying since jclouds does not
expose server-side copy in its portable abstraction.
2014-08-05 10:51:30 -07:00
Andrew Gaul
17b3d6c0ba
Emit HTTP status code inside handler methods
...
Also remove bogus HTTP 500 internal errors which were sent after the
response body.
2014-08-01 22:20:26 -07:00
Andrew Gaul
df13f8247c
Emit RequestTimeout when putBlob times out
...
Found with Ceph s3-tests. References #5 .
2014-08-01 21:49:16 -07:00
Andrew Gaul
5d069b26b7
Add delimiter to CommonPrefixes
...
Found with Ceph s3-tests. References #5 .
2014-08-01 17:53:35 -07:00
Andrew Gaul
a94ded5443
Emit 501 not implemented for PUT Bucket ACL
2014-08-01 17:53:33 -07:00
Andrew Gaul
49489430d5
Handle trailing slash during HEAD bucket
...
Found with Ceph s3-tests. References #5 .
2014-08-01 16:06:38 -07:00
Andrew Gaul
94f8582a67
Emit HTTP 204 on successful bucket delete
...
Found with Ceph s3-tests. References #5 .
2014-07-31 15:56:23 -07:00
Andrew Gaul
4c99f6870f
Emit NoSuchBucket/BucketNotEmpty on bucket delete
...
Found with Ceph s3-tests. References #5 .
2014-07-31 00:54:25 -07:00
Andrew Gaul
1e7a4a2270
Handle empty header values in Authorization
...
Found with Ceph s3-tests. References #5 .
2014-07-30 01:01:03 -07:00
Andrew Gaul
f7db3ee4fb
Implement AWS Authorization
...
Fixes #4 .
2014-07-30 00:18:03 -07:00
Andrew Gaul
3f52992a25
Add variant of sendSimpleErrorResponse w/o extra
2014-07-29 17:07:20 -07:00
Andrew Gaul
88d521b11d
Emit NoSuchBucket on head to non-existent bucket
...
Found with Ceph s3-tests. References #5 .
2014-07-29 15:58:28 -07:00
Andrew Gaul
1284c91e37
Emit NoSuchBucket on write to non-existent bucket
...
Found with Ceph s3-tests. References #5 .
2014-07-29 12:06:54 -07:00
Andrew Gaul
b603abefc8
Emit NoSuchKey when reading non-existent object
...
Found with Ceph s3-tests. References #5 .
2014-07-29 08:16:41 -07:00
Andrew Gaul
16dfa70aec
Handle empty user metadata values
...
Found with Ceph s3-tests. References #5 .
2014-07-29 08:03:55 -07:00
Andrew Gaul
7c5f219535
Return HTTP 204 on successful delete object
...
Found with Ceph s3-tests. References #5 .
2014-07-29 08:03:55 -07:00
Andrew Gaul
cf1376387c
Improve list bucket max-keys error handling
...
Found with Ceph s3-tests. References #5 .
2014-07-29 08:03:52 -07:00
Andrew Gaul
f698bd68e8
Improve create bucket error handling
...
Found with Ceph s3-tests. References #5 .
2014-07-29 07:35:48 -07:00
Andrew Gaul
5c843eb272
Improve Content-Length error handling
...
Found with Ceph s3-tests. References #5 .
2014-07-29 07:35:48 -07:00
Andrew Gaul
a6c997d71c
Improve Content-MD5 error handling
...
Found with Ceph s3-tests. References #5 .
2014-07-29 07:35:48 -07:00
Andrew Gaul
e53d8c929c
Add sendSimpleErrorResponse helper
...
Will reduce duplicated code in future commits.
2014-07-28 22:26:46 -07:00
Andrew Gaul
55484a4f6b
Quote eTag header
...
Found with Ceph s3-tests. References #5 .
2014-07-28 22:04:56 -07:00
Andrew Gaul
3edd5712aa
Allow trailing slash when creating bucket
...
Found with Ceph s3-tests. References #5 .
2014-07-28 00:38:55 -07:00
Andrew Gaul
ff84ccf19e
Initial commit of S3Proxy
2014-07-27 13:32:04 -07:00