Andrew Gaul
a80e75a20f
Add test for anonymous authentication
...
Fixes #200 .
2018-01-08 22:56:28 -08:00
Andrew Gaul
c410df593d
Parameterize TestUtils.startS3Proxy
2018-01-08 22:56:28 -08:00
Random Coder
0f26d65846
Add check for non anonymous identity before extracting auth header
...
Fixes #251 .
2018-01-08 22:56:18 -08:00
Andrew Gaul
2905b720b8
Update copyright year
2018-01-04 14:57:47 -08:00
Andrew Gaul
aee169e403
Check stream closed in read
...
This matches TestUtils.randomByteSource.
2018-01-04 14:54:54 -08:00
baul
ddfba4e7a4
v2/v4 auth improve
...
* 15 minitues timeskew
* Add x-amz-date header or query parameter check
* Change the timeskew logic to first get client req auth type
* When v2,x-amz-date header format is rfc2616,when v4,is iso8601
* If have both x-amz-date header and date header in v2 auth,date value in
stringtosign is x-amz-date header value,CanonicalizedAmzHeaders
have no x-amz-header.
Ref Delete example in site:
http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
* Fix v2 query auth:
If expires is nil ,does not mean that the auth type is not query
auth type.
Ref http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#RESTAuthenticationQueryStringAuth
It says that 'Additionally, you can limit a pre-signed request by specifying an expiration time.'
2018-01-02 17:32:49 -08:00
Andrew Gaul
94bf8ca88e
Add missing @Nullable
2017-12-23 08:03:29 -08:00
Andrew Gaul
d380661f76
Use a single jclouds thread pool for all backends
...
S3Proxy does not seem to use the jclouds thread pools but limiting
this to one makes sense for multiple configurations. References #180 .
2017-11-08 18:11:17 -08:00
Andrew Gaul
11f82ec997
Factor out properties parsing into Builder
2017-11-08 17:34:09 -08:00
Andrew Gaul
732a24d990
Allow limiting the number of Jetty threads
...
Also name Jetty threads more specifically. References #180 .
2017-11-08 15:25:57 -08:00
Andrew Gaul
f48bd352c4
Consume S3Object InputStream
...
Previously these tests leaked HTTP connections from the AWS SDK pool.
2017-11-08 11:41:35 -08:00
Andrew Gaul
251082f7e7
Support multiple configurations
...
Fixes #11 .
2017-11-07 17:06:57 -08:00
Andrew Gaul
6ee33b89f9
Refactor S3Proxy properties parsing
...
Also convert a few calls to System.exit into IllegalArgumentException.
References #11 .
2017-11-07 14:27:24 -08:00
Andrew Gaul
a09c9e1998
Treat directories as relative paths
...
When listing blobs foo/1 and foo/2 with prefix foo and delimiter /,
jclouds returns foo as a relative path, except for Atmos which returns
foo as a directory. Treat the latter like the former to allow listing
pseudo-directories with Atmos.
fb0f321303
introduced this regression.
Fixes #244 .
2017-10-31 11:43:22 -07:00
Andrew Gaul
35d7c48475
Read-only middleware
...
Fixes #217 .
2017-10-08 18:11:14 -07:00
Andrew Gaul
3dd7cfcd42
Address long narrowing issues
...
Found via error-prone 2.1.0.
2017-08-21 19:46:34 -07:00
Andrew Gaul
f6c3ab9e75
Add @Nullable annotations where appropriate
...
Found via error-prone 2.1.0.
2017-08-21 19:46:33 -07:00
Andrew Gaul
51aa2e7fcd
Address modern Guava deprecations
2017-08-21 15:04:41 -07:00
Andrew Gaul
39c289d649
Allow Docker environment to ignore unknown headers
2017-08-16 18:04:52 -07:00
Andrew Gaul
233559bb2b
Do not ignore x-amz-storage-class if not STANDARD
...
Clients can set the ignore unknown headers parameter to preserve the
existing behavior. References #234 .
2017-08-16 18:04:52 -07:00
Andrew Gaul
1a639d1062
Upgrade s3-tests
2017-08-16 14:11:40 -07:00
Andrew Gaul
d4802ec54f
Emit InvalidArgument on CopyPart invalid range
...
References kahing/goofys#212 .
2017-08-06 23:24:58 -07:00
Andrew Gaul
93b80f6373
Do not escape / when URL encoding
...
This allows clients to list pseudo-directories with slashes in them.
References kahing/goofys#213 .
2017-08-02 23:06:13 -07:00
Andrew Gaul
9e406531bb
Set response Content-Type to application/xml
2017-07-24 18:40:03 -07:00
Andrew Gaul
1e5ebadee4
Do not allow anonymous access to list buckets
...
Fixes #236 .
2017-07-22 16:11:29 -07:00
Andrew Gaul
17294be152
Do not set endpoint if it is an empty string
...
Also do not pass along endpoint as an override if we set it via the
builder. Fixes #229 .
2017-07-08 19:45:22 -07:00
Chaithanya Ganta
23705a879b
Moving signature creation logic to a separate class
...
Signed-off-by: Chaithanya Ganta <ganta@adobe.com>
2017-07-07 09:06:04 -07:00
Chaithanya Ganta
84885fa8cd
Throw proper S3 error code for invalid buck name
...
INVALID_BUCKET_NAME for container creation request, else NO_SUCH_BUCKET
2017-06-02 13:47:51 +02:00
Chaithanya Ganta
6b92cc06f4
Validate bucket name before processing any request
2017-06-02 13:47:51 +02:00
Andrew Gaul
742820a93d
Allow capitals as first character in bucket name
...
Curiously Amazon permits mixed case but documents that only lowercase
letters are allowed:
https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
Fixes #226 .
2017-05-24 22:02:48 -07:00
Rached Ben Mustapha
e23e9b78e4
Handle HttpResponseException in S3ProxyHandlerJetty
2017-05-12 12:33:40 -07:00
Andrew Gaul
525c6e2275
Override PrintStream.write as well as print
...
args4j inconsistently uses both methods for output. Workaround for
kohsuke/args4j#149 .
2017-05-08 11:33:12 -07:00
Kishore battula
84ec8e22da
added whether console is attached or not
2017-05-08 11:33:12 -07:00
Andrew Gaul
9c74851c43
Address error-prone 2.0.19 issues
2017-05-06 17:00:38 -07:00
Andrew Gaul
e21b467110
Improve IP address validation
2017-05-06 12:27:46 -07:00
Michael Wittig
4f14b8607a
HTTP POST Requests using AWS Signature Version 4
2017-05-05 12:11:54 -07:00
kishore
d3c77384f1
Allow anonymous access to public-read containers
2017-05-03 00:02:05 -07:00
Andrew Gaul
8db6ce2a92
Replace parameters whitelist with blacklist
...
Mimic Amazon behavior of ignoring unknown parameters and only emit
NotImplemented when present in blacklist. Fixes #189 .
2017-04-25 14:03:43 -07:00
Andrew Gaul
6b30e66127
Do not set virtual host when it is an empty string
...
References #210 .
2017-04-25 12:52:24 -07:00
Eric Urban
16af493cad
Update docker script to allow for configuration of virtualhost
2017-04-25 10:40:01 -07:00
Andrew Gaul
d427c8f7df
Get Azure maximum part size dynamically
...
This size will increase from 4 to 100 MB in jclouds 2.1.0.
References #191 . Follow on to 2ddce6af86
.
2017-04-24 12:16:38 -07:00
Andrew Gaul
0105fd66df
Handle X-Amz-Expires header during authentication
...
Found via s3verify.
2017-04-24 04:00:48 -07:00
Andrew Gaul
d005f452de
Prefer failBecauseExceptionWasNotThrown over fail
2017-04-18 11:53:09 -07:00
Andrew Gaul
9ddcc5b2e6
Remove stale TODO
2017-04-16 21:08:45 -07:00
Andrew Gaul
dea4b3bae3
Handle testMultipartUploadAbort azureblob quirks
2017-04-16 19:50:18 -07:00
Andrew Gaul
fc204c0d49
Only create multipart stub blob when required
2017-04-16 19:04:29 -07:00
Andrew Gaul
b9730a4b2f
Make testSpecialCharacters compatible with Azure
...
Also sort prefix chars by hex values and remove unneeded delimiter.
2017-04-12 00:59:10 -07:00
Andrew Gaul
d8546c00ce
URL encode CommonPrefix when requested
2017-04-12 00:58:43 -07:00
Andrew Gaul
7d53dead20
Expand MPU test to check MPU and part listings
2017-04-11 19:30:12 -07:00
Andrew Gaul
d1cc178f77
Skip tests which B2 does not support
2017-04-09 13:04:38 -07:00
Andrew Gaul
76d7bd911d
Include cause when throwing S3Exception
2017-04-09 13:04:38 -07:00
Andrew Gaul
437ae2068d
Stream B2 writes
...
Previously S3Proxy buffered B2 writes on disk to create a repeatable
payload for jclouds which calculated the SHA-1 checksum. The B2
service no longer requires a checksum so we can remove the buffering.
2017-04-09 13:04:38 -07:00
Andrew Gaul
65e65bc214
Ensure that testBigMultipartUpload meets min size
...
Previously this failed on Backblaze B2.
2017-04-08 12:24:40 -07:00
Andrew Gaul
802b8510cf
Set content bits only when provider supports them
...
Previously the AWS SDK choked on these null values.
2017-04-08 12:24:39 -07:00
Raphaël Pinson
d3023e1695
Use JCLOUDS_ENDPOINT and JCLOUDS_REGION in run-docker-container.sh
2017-03-30 09:01:16 -07:00
Andrew Gaul
014f558c51
Support V4 Signed URLs
...
Fixes #160 . Fixes #164 . Fixes #204 .
2017-03-16 19:29:03 -07:00
shenghu
8b2d056d40
Allow endpoint of s3proxy to have service path
...
Sometimes the service is not the only one under a domain.
This commit adds s3proxy.service-path to allow s3proxy to be deployed
with a context path. Fixes #48 .
2017-03-12 16:55:49 -07:00
Andrew Gaul
8224f6fe6e
Interpret chunked encoding with anonymous access
...
Also check authentication type correctly in the constructor to handle
configurations with anonymous access but set identity and credential.
References #145 .
2017-03-10 19:46:15 -08:00
Kishore battula
842eaaf719
Added log prefix in test logback
2017-03-10 02:50:20 -08:00
Kishore battula
bf281edebc
Added log prefix in logback
2017-03-10 02:50:20 -08:00
Andrew Gaul
a5692b986b
Return zero when listing blob size
...
This makes more sense than returning the 8 byte stub blob size.
References #131 .
2017-03-09 10:48:56 -08:00
Andrew Gaul
26f4232756
Emit LastModified during List Parts
2017-03-08 22:58:40 -08:00
Andrew Gaul
7116f29199
Add NullBlobStore
...
This throws away all data during object creation and reconstructs it
with NUL bytes. Clients can use this middleware for performance
testing or to simulate very large objects. Fixes #131 .
2017-03-08 22:53:16 -08:00
Andrew Gaul
92ef32f860
Address deprecated MultipartPart.create calls
2017-03-08 22:35:55 -08:00
Andrew Gaul
9af67702ad
Always emit LastModified header in list parts
...
Some clients like jclouds expect this to be present. Fixes #195 .
2017-03-08 14:10:09 -08:00
shenghu
b265fed46f
Add verification of override parameters for presigned url.
2017-03-04 17:16:39 -08:00
Andrew Gaul
2ddce6af86
Get Azure maximum part size dynamically
...
This size will increase from 4 to 100 MB in jclouds 2.1.0.
References #191 .
2017-03-01 12:52:08 -08:00
Andrew Gaul
64c288ef43
Skip MD5 checking on GET for Azure
...
Also use constant name instead of string.
2017-03-01 12:52:07 -08:00
Andrew Gaul
5ee5cf6c53
Prepend S3Proxy version in User-Agent header
...
This only includes the version in the main package and not the unit
test. Fixes #136 .
2017-02-27 09:48:37 -08:00
Philipp Marx
d6ca2fb280
Add support for ignoring unknown parameters
...
Presigned URLs may contain additional parameters in the URL which will
be used “as is” by the client uploading/downloading content from S3.
CLOSES #138
2017-02-22 10:39:37 -08:00
Andrew Gaul
f5d2fa9a0b
Put each subresource on its own line
2017-02-21 16:34:13 -08:00
shenghu
3b4e0c8fdf
This change makes S3Proxy able to validate presigned url which
...
has override parameters, i.e. "content-disposition",
"response-content-encoding".
2017-02-22 00:32:21 +08:00
Andrew Gaul
66c3c73fc7
Remove stale TODOs
2017-02-20 13:27:51 -08:00
oxalis-gps
09d744763d
Added Docker environment variable "S3PROXY_CORS_ALLOW_ALL"
...
refs issues #142
refs Pull #144
The default value is false
2017-02-16 13:49:48 -08:00
Andrew Gaul
e581d99517
Rename S3AwsSdkTest to AwsSdkTest
2017-02-15 23:33:19 -08:00
Andrew Gaul
05c5643681
Update copyright year
2017-02-15 23:15:16 -08:00
Andrew Gaul
4295f72be5
Move tests from S3ProxyTest to S3AwsSdkTest
...
This makes testing more consistent and gives better coverage of the
more widely-used AWS SDK. Fixes #147 .
2017-02-15 23:11:11 -08:00
Andrew Gaul
bbcdf4391f
Ignore long-running test
2017-02-15 18:17:57 -08:00
Andrew Gaul
9329b161f2
Allow unsigned payloads
...
Fixes #184 .
2017-02-15 18:17:57 -08:00
Andrew Gaul
acf125d8e9
Use secure endpoint in tests
2017-02-15 18:17:56 -08:00
Andrew Gaul
dc0c8663b8
Uprade to aws-java-sdk-s3 1.11.84
...
Address various deprecations.
2017-01-25 13:06:01 -08:00
Andrew Gaul
48f7fe2742
Remove calls to Throwables.propagate
...
These are not needed and Guava 21 removes this API.
2017-01-19 22:37:40 -08:00
Andrew Gaul
13b10997c8
Make private methods static where possible
...
Found via error-prone.
2016-12-20 13:28:18 -08:00
Andrew Gaul
8052e67eac
Remove unused parameters
...
Found via PMD.
2016-11-21 13:09:01 -08:00
Andrew Gaul
4336000409
Allow Quiet element in DeleteMultipleObjects
...
Fixes #173 .
2016-11-20 16:33:44 -08:00
Andrew Gaul
0003d011f3
Correct test exception message
2016-11-16 10:54:46 -08:00
Andrew Gaul
23bfecd6be
Emit AccessDenied if client sends wrong auth type
...
This allows fallback from v4 to v2. Also handle anonymous mode
explicitly.
2016-11-14 22:24:01 -08:00
Andrew Gaul
3d9a7120ce
Ensure S3Exception has message
...
Also add missing toString implementation.
2016-11-14 15:39:44 -08:00
Andrew Gaul
04657867b8
Add configuration for AWS authentication V4
...
Supports aws-v2, aws-v4, aws-v2-or-v4, and none. Fixes #156 .
2016-11-14 00:59:46 -08:00
Andrew Gaul
80e256435e
Fix indentation and work around wrong visibility
...
Found via Checkstyle 7.2.
2016-11-14 00:58:22 -08:00
Andrew Gaul
778002e7f5
Format LastModified without millisecond precision
...
Found via s3verify.
2016-11-13 18:52:56 -08:00
Andrew Gaul
3188605ea7
More strictly check bucket names
...
Found via s3verify.
2016-11-13 18:42:12 -08:00
Andrew Gaul
85bd7432a7
Limit GET Bucket maxKeys to 1000
...
Found via s3verify.
2016-11-13 17:45:25 -08:00
Andrew Gaul
c0c01c2e7f
Add Location header to PutBucket response
...
Found via s3verify.
2016-11-11 18:42:37 -08:00
Andrew Gaul
c707ed4a6d
Correct some S3 error responses
...
Found via s3verify.
2016-11-11 16:17:00 -08:00
Andrew Gaul
0dc133036b
Ignore part-number-marker when zero
...
S3Proxy does not support pagination but it can support this initial
no-op value. Fixes #162 .
2016-11-07 22:13:22 -08:00
shenghu
4fb4a718b9
Refactor S3ProxyHandler to be agnostic to Jetty. Added a new file,
...
S3ProxyHandlerJetty, to have codes related to Jetty.
2016-11-07 22:07:55 -08:00
Andrew Gaul
164ef077b3
Emit correct EncodingType stanza
...
Previously this contained a spurious hyphen which confused clients
that checked the XML response instead of relying on their HTTP request
parameters. Fixes #158 .
2016-10-05 04:45:32 -07:00
Andrew Gaul
bb64884f09
Return ETag as ETag instead of Content-MD5
...
Previously S3Proxy only returned ETag if jclouds populated the
possibly-null Content-MD5 field. Providers like Azure do not store
MD5 in ETag and thus S3Proxy would not return any ETag. Also do not
return unneeded Content-MD5 header. Fixes #151 .
2016-09-12 22:53:54 -07:00
Andrew Gaul
9f0bc8a17b
Honor SIGINT in Docker container
...
Use intermediate shell script to forward environment variables then
exec java.
2016-09-04 22:21:54 -07:00
Andrew Gaul
224bb8b2f6
Unwrap AuthorizationException to ACCESS_DENIED
2016-08-29 23:02:15 -07:00
Andrew Gaul
5c3b4494d2
Use generic get blob behavior for anonymous access
...
Previously S3Proxy tried to be too clever about pushing ACL
enforcement into the provider.
2016-07-19 03:20:07 -07:00
Andrew Gaul
01f956052e
Add property to include permissive CORS response
...
References #142 .
2016-07-19 03:20:07 -07:00
Zvika Gart
fcbc14780b
Added support for S3 response header override options
2016-07-15 23:13:54 -07:00
Andrew Gaul
6ecd8d789f
Upgrade to aws-java-sdk-s3 1.11.18
...
Remove deprecated V4 configuration which is now default.
2016-07-14 14:14:06 -07:00
Andrew Gaul
1513606992
Inspect all Throwables for TimeoutException
2016-06-26 23:23:13 -07:00
Andrew Gaul
b7eb53b7c7
Hoist timeout handling to top-level
2016-06-26 13:56:30 -07:00
Andrew Gaul
17f8fae37b
Add support for B2 provider
...
Fixes #98 .
2016-06-23 11:56:52 -07:00
Andrew Gaul
0658df372f
Remove empty CommonPrefixes stanza
...
This is not needed and confuses s3-tests.
2016-06-21 11:21:21 -07:00
Andrew Gaul
cd3a208243
Add missing quirks checks in tests
...
Missing Cache-Control and Content-Language.
2016-06-17 18:29:53 -07:00
Andrew Gaul
187eb065aa
Add support for listing multipart uploads
...
Only supported in Azure, B2, and S3. Fixes #118 .
2016-06-14 15:22:45 -07:00
Andrew Gaul
72138e1278
Handle null AccessControlPolicy.aclList
...
Also add toString methods.
2016-06-06 17:01:48 -07:00
Andrew Gaul
99d8e5e8d7
Add missing @Override annotations
...
Found via error-prone.
2016-06-03 10:41:05 -07:00
Andrew Gaul
0053102df5
Add test for aborting multi-part uploads
2016-06-02 07:42:17 -07:00
Andrew Gaul
519cd9313c
Remove stub blob during multi-part upload
...
References #135 .
2016-06-02 07:42:16 -07:00
Andrew Gaul
2eaf7de68f
Handle null ETag during multipart upload
...
Fixes #135 .
2016-06-01 12:51:41 -07:00
Andrew Gaul
d6c81c9b64
Correct issues with encoding of plus character
...
Also remove some questionable decoding.
2016-06-01 11:22:16 -07:00
Andrew Gaul
e7bb6ddb47
Avoid NullPointerException when quoting ETags
2016-05-27 18:07:41 -07:00
Andrew Gaul
a4b96924eb
Skip time-limited signed requests
...
jclouds aws-s3 provider supports these but s3 does not.
2016-05-12 12:06:03 -07:00
Andrew Gaul
2cfcc33bb8
Upgrade to aws-java-sdk-s3 1.10.76
...
Also address deprecations.
2016-05-05 22:22:04 -07:00
Andrew Gaul
2296b8228b
Add configuration to ignore unknown headers
...
Fixes #130 .
2016-03-12 23:15:45 -07:00
Andrew Gaul
d878642b5d
Add quirks for google-cloud-storage
2016-03-09 13:35:02 -08:00
Andrew Gaul
eece05f02e
Fix path-based GCS credentials
...
Providing both credential and the credential property used only the
latter, which was not expanded when credential is a file. Also expand
credential in tests. References #128 .
2016-03-09 13:35:02 -08:00
Andrew Gaul
6292d28c9c
Add EventualBlobStore
...
This models eventually-consistent behavior. This implementation uses
two buckets and client writes going to the first bucket and reads to
the second. Operations later replicate from the first to the second
with a variable delays. A more complete implementation could flap
between the strongly- and eventually-consistent buckets and arbitrary
reorder operations which conclude with last-writer wins. Fixes #65 .
2016-03-01 17:13:39 -08:00
Andrew Gaul
0351ee73dc
Expand GCS credential files into PEMs
2016-02-26 17:45:33 -08:00
Andrew Gaul
e670537822
Handle Swift quirks in jclouds tests
2016-02-20 00:49:16 -08:00
Andrew Gaul
2062aadfeb
Handle conditional HEAD object requests
2016-02-18 11:48:48 -08:00
Andrew Gaul
52ba2c843f
Add support for conditional copy object
...
Fixes #113 .
2016-02-16 20:31:12 -08:00
Andrew Gaul
d66b539f2c
Reduce visibility of methods
2016-02-16 16:16:51 -08:00
Andrew Gaul
884660ea05
Correct typo
2016-02-11 15:40:45 -08:00
Andrew Gaul
a4385daa45
Fix v4 signing of queries with special characters
...
Reference:
https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
2016-02-09 11:52:04 -08:00
Andrew Gaul
9c3d9409ac
Read from PushBackInputStream not InputStream
...
Previously S3Proxy truncated create bucket requests.
2016-02-08 22:54:39 -08:00
Andrew Gaul
7198c9088c
Do not close InputStream for each uploaded subpart
2016-02-04 00:09:41 -08:00
Andrew Gaul
997dc9707c
Skip expires tests when backend lacks support
2016-02-03 23:12:26 -08:00
Andrew Gaul
6d7a46296e
Skip zero keys tests when backend lacks support
2016-02-01 12:29:43 -08:00
Andrew Gaul
1ae596e870
Support list multipart upload parts with Azure
...
Map the Azure subparts back into S3 parts.
2016-01-31 13:57:52 -08:00
Andrew Gaul
bc68e2cb2e
Do not run marker tests when backend lacks support
2016-01-31 12:50:04 -08:00
Andrew Gaul
82d95a2746
Use getObject and generatePresignedUrl short forms
2016-01-30 21:26:17 -08:00
Andrew Gaul
940286b022
Correct cut and paste errors in copy tests
2016-01-30 21:26:17 -08:00
Andrew Gaul
65fd80036f
Do not run ACL tests when backend lacks support
2016-01-30 21:26:17 -08:00
Andrew Gaul
cea4a42922
Use decoded content length when provided
...
Previously S3Proxy provided an incorrect Content-Length header when
using V4 signing which providers rejected.
2016-01-30 19:13:04 -08:00
Andrew Gaul
983c2b003e
Remove stale TODO
2016-01-30 17:11:47 -08:00
Andrew Gaul
e292ebaccb
Consistently parse XML with Jackson
2016-01-29 17:50:22 -08:00
Andrew Gaul
511c968ce7
Add test for V4 URL signing
...
Currently fails.
2016-01-29 17:30:13 -08:00
Andrew Gaul
8d8e8ff290
Upgrade to aws-java-sdk-s3 1.10.50
...
This release includes an implementation of AccessControlList.equals.
References #116 .
Release notes:
https://aws.amazon.com/releasenotes/8286007886477675
2016-01-29 09:50:14 -08:00
Andrew Gaul
bc1833ed2e
Remove BlobAccess TODO
...
jclouds cannot provide BlobAccess since providers do not return these
ACLs.
2016-01-26 19:28:50 -08:00
Andrew Gaul
6b0a6d8cdc
Ensure failing tests raise NotImplemented error
2016-01-24 13:52:56 -08:00
Andrew Gaul
f202207c63
Map a subset of XML ACLs to canned ACLs
...
Fixes #116 .
2016-01-23 15:34:03 -08:00
Andrew Gaul
0e3a7ef843
Add missing EmailAddress field
...
This allows S3Proxy to return the correct NotImplemented error code
instead of InternalError. References #116 .
2016-01-23 15:16:38 -08:00
Andrew Gaul
d557af774d
Replace query parameters in anonymous requests
2016-01-23 15:06:04 -08:00
Andrew Gaul
19e2426220
Map a subset of XML ACLs to canned ACLs
...
Fixes #116 .
2016-01-21 18:24:57 -08:00
Andrew Gaul
587a4a6670
Centralize blobstore quirks
2016-01-17 23:10:28 -08:00
Andrew Gaul
744d126331
Add support for Cache-Control header
...
Fixes #115 .
2016-01-17 12:08:52 -08:00
Andrew Gaul
542c9b8112
Add Accept-Ranges header to partial get requests
...
Fixes #66 .
2016-01-15 22:37:19 -08:00
Andrew Gaul
05bd2c1158
Use uploadId for stub blob name
...
This makes MPU overwrites of an existing blob atomic. Fixes #108 .
2016-01-14 15:11:03 -08:00
Andrew Gaul
3aed140a15
Avoid mutable ArrayList
...
Latest AWS SDK handles immutable List. Also tidy up line wrapping.
2016-01-13 16:12:26 -08:00
Andrew Gaul
ef3a7a6adf
Add JcloudsS3BlobSignerLiveTest
...
References #62 .
2016-01-12 16:20:03 -08:00
Andrew Gaul
fb3bd591d6
Add JcloudsBucketsLiveTest
...
Uncovers several missing features:
Bucket logging
Bucket payer
XML ACLs
References #62 .
2016-01-12 16:20:02 -08:00
Andrew Gaul
9c5499a05e
Add JcloudsS3ClientLiveTest
...
Uncovers several missing features:
Cache-Control header
conditional copies
public-read-write canned ACLs
XML ACLs
References #62 .
2016-01-12 16:20:02 -08:00
Andrew Gaul
ae95538647
Add JcloudsS3ContainerIntegrationLiveTest
...
References #62 .
2016-01-12 16:19:56 -08:00
Andrew Gaul
f4212571b0
Rename suite to JcloudsS3BlobIntegrationLiveTest
2016-01-11 20:23:13 -08:00
Andrew Gaul
91429586dc
Reuse encodingType local
2016-01-11 20:01:50 -08:00
Andrew Gaul
3c8f68feb2
Update copyright year to 2016
2016-01-09 21:14:59 -08:00
Andrew Gaul
f86bd162ea
Call startsWithIgnoreCase helper
2016-01-09 21:03:46 -08:00
Andrew Gaul
a5c9f28e0a
Make V4_MAX_NON_CHUNKED_REQUEST_SIZE configurable
...
Also default to 32 MB since goofys via aws-sdk-go uses 8 MB requests.
2016-01-09 20:33:28 -08:00
Andrew Gaul
2a03aa137d
Use v4 signing with S3AwsSdkTest
2016-01-09 19:54:51 -08:00
Andrew Gaul
9c25dc557c
Fix off-by-one in V4_MAX_NON_CHUNKED_REQUEST_SIZE
2016-01-09 19:22:28 -08:00
Andrew Gaul
3a042ff6e8
Mask high bits in ChunkedInputStream.read
...
Previously read could erroneously return -1 end of stream when
returning ASCII 128.
2016-01-09 18:48:26 -08:00
Andrew Gaul
9976f3c02f
Consume trailing newline in ChunkedInputStream
...
References #24 .
2016-01-09 18:48:15 -08:00
Andrew Gaul
564463c0e0
Factor out MPU test ByteSource offsets
2016-01-09 17:24:02 -08:00
Andrew Gaul
cc516e7ede
Improve ChunkedInputStream exception message
2016-01-09 17:21:47 -08:00
Andrew Gaul
00dc2a94e0
Use BaseEncoding.lowerCase where possible
...
This avoid extra allocations from String.toLowerCase.
2016-01-09 17:06:38 -08:00
Andrew Gaul
5c3333d4d9
Parse chunk length in hexadecimal
...
Resolves an issue when uploading large objects and parts.
References #24 .
2016-01-09 16:56:12 -08:00
Andrew Gaul
e7ba7e5c0d
Factor out S3Client initialization
2016-01-09 16:19:23 -08:00
Andrew Gaul
e9baeb9c76
Always re-encode parameters
...
Assume UTF-8 encoding if not provided. Reference #24 .
2016-01-09 14:37:32 -08:00
Andrew Gaul
c0d7cce353
Fix reversed arguments to String.indexOf
...
Found via goofys tests. References #24 .
2016-01-09 13:06:12 -08:00
Timur Alperovich
0f872c0a2c
Support AWS v4 signatures
...
Fixes #24 .
2016-01-08 15:31:06 -08:00
Andrew Gaul
f24b5647fa
Provide requests with explicit payload
...
Some requests require payload transformations, e.g., chunked encoding,
so explicitly provide the payload instead of using the request
payload. References #24 .
2016-01-07 14:02:20 -08:00
Andrew Gaul
0ab0b55f31
Remove duplicate call to get blobStoreType
2015-12-28 12:00:41 -08:00
Andrew Gaul
e93529bfeb
Use native putBlob ACLs
2015-12-23 12:56:28 -08:00
Andrew Gaul
118b656f8e
Allow anonymous HEAD object on public-read objects
2015-12-22 18:41:15 -08:00
Andrew Gaul
024c7a3fe9
Encode list blobs HTTP responses in UTF-8
...
Previously responses incorrectly encoded in ISO-8859-1.
2015-12-22 18:31:32 -08:00
Andrew Gaul
0332a2107d
Enabled testSetBlobAccess
...
jclouds now uses canned ACLs which S3Proxy supports.
2015-12-19 18:19:37 -08:00
Andrew Gaul
04f50b7363
Annotate JcloudsIntegrationTest with @Test
...
For consistency with jclouds tests.
2015-12-19 13:09:07 -08:00
Andrew Gaul
d1dcc1abee
Use testng annotations for JcloudsIntegrationTest
...
This matches what the underlying test does and resolves a spurious
issue with testPutObjectStream.
2015-12-19 00:41:27 -08:00
Andrew Gaul
bc993cc3cb
Skip testMaximumMultipartUpload for remote backend
...
This test dominates run-time due to issuing 10,000 RPCs.
2015-12-16 19:21:59 -08:00
Andrew Gaul
ee55828375
Emit NotImplemented when setting XML ACLs
2015-12-16 19:19:44 -08:00
Andrew Gaul
d9b3753f49
Do not set expires when creating blobs
...
No tests currently check expires and setting it causes problems for
Swift-based backends.
2015-12-15 17:22:25 -08:00
Andrew Gaul
3151754ebc
Use container public-read for Swift test
...
Swift does not support blob-level ACLs.
2015-12-15 07:09:22 -08:00
Derrek Leute
d8c73bc86d
URL encode blob names when client requests it
...
This allows support for characters which XML 1.0 cannot represent and
improves compatibility with newer versions of the AWS CLI.
Fixes #104 .
2015-12-14 17:10:45 -08:00
Andrew Gaul
23cff3a61d
Do not require credentials for local blobstores
2015-12-14 16:01:35 -08:00
Andrew Gaul
9e033c677f
Require credentials for aws-v2 authentication
2015-12-14 15:48:19 -08:00
Andrew Gaul
9af1d14dcc
Provide content length to AmazonS3.putObject
...
Prevents warnings of the form:
WARNING: No content length specified for stream data. Stream contents
will be buffered in memory and could result in out of memory errors.
2015-12-14 00:31:19 -08:00
Andrew Gaul
177d9b7566
Handle possibly-null HttpResponse
2015-12-13 23:43:22 -08:00
Andrew Gaul
fa215ecb8a
Factor out calls to get blobStoreType
2015-12-13 22:58:35 -08:00
Andrew Gaul
e237ee9ebb
Disable ETag checking for Google Cloud Storage
...
Google Cloud Storage ETag is opaque and not an MD5 hash.
2015-12-12 20:40:26 -08:00
Andrew Gaul
c45dde3cbe
Skip testMaximumMultipartUpload with large sizes
2015-12-12 13:00:48 +08:00
Andrew Gaul
0581c747bd
Add missing @Override annotation
...
Found via error-prone.
2015-12-12 11:24:59 +08:00
Andrew Gaul
33fac374a6
Use container public-read for Azure test
...
Azure does not support blob-level ACLs.
2015-12-12 11:24:58 +08:00
Andrew Gaul
eccf6d1b1f
Disable ETag checking for Azure
...
Azure ETag is opaque and not an MD5 hash. References #96 .
2015-12-12 11:24:58 +08:00