257 Commits

Author SHA1 Message Date
Andrew Gaul
ffa7c5c587 Update via canned ACLs instead of XML ACLs for S3
These are simpler than the full XML API and better supported by
non-AWS S3 implementations, e.g., Ceph, S3Proxy.  Further this makes
the provider more consistent when creating a bucket or object which
only supports setting canned ACLs.
2015-12-19 19:28:03 -08:00
Andrew Gaul
c2ba0bef32 Allow updating S3 canned ACLs
These are simpler than the full XML API and better supported by
non-AWS S3 implementations, e.g., Ceph, S3Proxy.
2015-12-19 19:28:03 -08:00
Andrew Gaul
4c8f758e3a Loosen restrictions for S3 bucket naming
US Standard and most S3 clones allow more bucket names than DNS
allows.
2015-12-19 15:10:01 -08:00
Andrew Gaul
750c5d5316 JCLOUDS-1042: Remove unneeded ACL swizzling
The previous commit shows that we do not need this.
2015-12-18 23:28:39 -08:00
Andrew Gaul
b47c50b7a5 Correct malformed format strings
Found via error-prone.
2015-12-12 08:53:08 +08:00
Andrew Gaul
721a0dbd3c Add support for standard_ia storage class
This enables storage with lower at-rest prices, higher request prices,
and lower availability.  Also rework existing reduced redundancy
parsing into a more generic storage class.  More background on
standard_ia:

https://aws.amazon.com/blogs/aws/aws-storage-update-new-lower-cost-s3-storage-option-glacier-price-reduction/
2015-11-16 14:04:51 -08:00
Andrew Gaul
4829bbbd2c JCLOUDS-964: S3 multipart copy 2015-10-14 23:17:40 -07:00
Timur Alperovich
a0b95ea7a3 JCLOUDS-217: Fix encoding handling in S3.
When constructing the query path, S3 does not properly handle encoded
paths. For example, if a blob named %20 is to be placed into the blob
store, S3 would end up placing blob named " " (what %20 represents).
This occurs because the S3 provider examines the URI's path portion
(which is presented in a decoded fasion to the caller). After
examining the path, it is not encoded again. Instead, we should call
getRawPath() to avoid this issue.

There are two issues on the decoding path:
1. Given a blob named " ", S3 API will throw a RuntimeException due to
a NULL check -- the key that it uses is NULL to represent the XML
content " " corresponding to the blob name.
2. Given a blob named "%20 ", S3 API will generate a URI for a blob
named "%20%20", which is also incorrect. The correct URI would be
"%2520%20" (escaping the first "%" and " " characters).

The first issue is due to the currentOrNull() helper, which calls
trim() on the string and then compares the string to an empty string.
This means that a blob named " " will be parsed as "" and then
converted to NULL as the result of that method. Passing "null" as the
key then fails in a number of places (notably, appendPath()).

The second issue is due to the appendPath() method in the jclouds Uris
class. The issue here is that appendPath() calls urlDecode() and
passes the result to path(). The path() method, in turn, also calls
urlDecode(). After these transformations, a properly encoded blob of
the form %2520%20 turns into "%20 " and then "  " (two spaces). After
these transformations the path is encoded again, resulting in "%20%20"
(which is wrong).
2015-09-08 15:19:02 -07:00
Oliver Gondža
edde721937 JCLOUDS-962: Make all @Provider methods final 2015-09-02 23:54:44 +02:00
Timur Alperovich
a2d8dfcb27 JCLOUDS-992: Handle directories as blobs in S3. 2015-08-20 12:42:11 -07:00
Andrew Gaul
d86a6c9ee1 Correct Checkstyle violations 2015-07-31 15:28:25 -07:00
Andrew Gaul
86f47394bf Correct FindBugs violations 2015-07-31 14:53:58 -07:00
Timur Alperovich
fe13b07233 JCLOUDS-929: Implement delimiter support in S3.
Plumb the delimiter option to the S3 API.
2015-07-13 14:34:59 -07:00
Timur Alperovich
a29d75a5d1 JCLOUDS-929: Implement generic delimiter support.
The patch adds delimiter option support in the generic blob store
interface. A live integration test is added to verify that jclouds
correctly lists objects separated by a delimiter.
2015-07-13 14:34:58 -07:00
Timur Alperovich
c409c19ff3 JCLOUDS-930: Plumb prefix support down to S3.
Plumbs the ListContainerOptions.prefix setting down to the S3 API.
2015-06-29 17:31:56 -07:00
Timur Alperovich
7c7d2e2df6 JCLOUDS-930: Add the prefix option.
Add a prefix option to the ListContainerOptions class.
2015-06-29 17:31:55 -07:00
Andrea Turli
61b06329d8 create java-xmlbuilder.version property for maven
add java-xmlbuilder to dependencyManagement so downstream project don't need to specify the version
2015-06-29 08:47:54 +02:00
Andrew Gaul
ae157991ba JCLOUDS-894: Add portable multipart upload for S3 2015-06-06 16:32:16 -07:00
Andrew Gaul
00734ee755 JCLOUDS-894: Move MultipartUploadSlicingAlgorithm to core 2015-06-06 16:32:16 -07:00
Andrew Gaul
5095590d60 JCLOUDS-894: Do not add unnecessary ETag quotes
Previously
AWSS3BlobIntegrationLiveTest.testMultipartUploadMultipleParts failed.
2015-05-26 11:19:58 -07:00
Andrew Gaul
9128ae515f JCLOUDS-894: Expose S3 multipart operations 2015-05-01 13:32:35 -07:00
Andrew Gaul
ca543f3cdd Add S3 list multipart parts
TODO: pagination, etc.?
2015-05-01 13:32:35 -07:00
Andrew Gaul
21a422bc71 Fix testCopyIfModifiedSince for AWS S3 2015-04-10 23:11:21 -07:00
Andrew Gaul
a43dcece16 JCLOUDS-651: S3 copy object content metadata 2015-04-08 18:07:28 -07:00
Andrew Gaul
b85068ca7f JCLOUDS-651: Add S3 server-side copyBlob 2015-04-02 15:36:53 -07:00
Ignasi Barrera
f469cf8b51 Next development version 2.0.0-SNAPSHOT 2015-03-24 10:52:01 +01:00
Ignasi Barrera
bb41ed4341 Apache jclouds 1.9.0 release 2015-03-24 10:35:42 +01:00
Andrew Gaul
85637ccee2 Fix ParseS3ErrorFromXmlContentTest
References JCLOUDS-794.
2015-02-25 18:29:17 -08:00
Andrew Gaul
d7e25d9cc6 Use injected metadata instead of new instance
This addresses a regression from JCLOUDS-794.
2015-02-25 17:24:44 -08:00
Andrew Gaul
6c8be12703 JCLOUDS-732: S3 portable object ACLs 2015-02-21 10:28:02 -08:00
Andrew Gaul
2553b09bb4 Build S3 multi-delete request with an XML library
This commit addresses test failures in
AWSS3BlobIntegrationLiveTest.deleteMultipleObjects.
2015-02-15 10:25:23 -08:00
Andrew Gaul
ecc8548fbd JCLOUDS-144: S3 multi-blob delete 2015-02-15 01:06:03 -08:00
Andrew Gaul
4bb319a0cc JCLOUDS-820: Support multi-delete for generic S3
Tested against AWS and DreamObjects.  This commit only moves and
renames code.
2015-02-13 06:23:16 -08:00
Andrew Gaul
ba2f8ac232 JCLOUDS-258: Support MPU for generic S3
Tested against AWS-S3 and DreamObjects.  This commit only moves and
renames code although some classes are duplicated for deprecation
purposes.
2015-02-12 17:59:33 -08:00
Andrew Gaul
ec3f035487 JCLOUDS-660: S3 portable container ACLs 2015-02-12 17:26:48 -08:00
Andrew Gaul
eacfc8fdf1 Handle removal during iteration
Previously this threw UnsupportedOperationException due to
findGrantsForGrantee returning an immutable view.
2015-02-12 17:26:47 -08:00
Andrew Gaul
8a2c821e13 JCLOUDS-794: Use bogus URL for generic S3 endpoint
This prevents users from accidentally connecting to AWS.
2015-02-04 13:42:03 -08:00
Andrew Gaul
affad9fa3b JCLOUDS-96: JCLOUDS-351: Fix S3 copy if tests
Use correct options in testCopyIfUnmodifiedSince, use looser time
bounds, and ensure that tests throw HttpResponseException when
expected.
2015-01-24 10:56:21 -08:00
Andrew Gaul
c770ffbeb0 Use sorted set to order relative paths correctly 2015-01-22 11:37:46 -08:00
Andrew Gaul
fae097e144 JCLOUDS-654: Add object size to StorageMetadata
This allows callers to read the content length during container
listing.  Tested against: atmosonline, aws-s3, azureblob, filesystem,
and transient.  Intentionally not implemented for legacy swift
provider.
2015-01-09 22:34:56 -08:00
Jeremy Daggett
d3c1e2eab4 Use AutoService to generate service loader metadata 2015-01-09 11:22:12 -08:00
Adrian Cole
90a6bb19f4 Finished partial fix in 91f405c9fedf24822015172e9e3c50acbd855d28. 2014-11-16 10:37:31 -08:00
Adrian Cole
3980cd791b Revert "JCLOUDS-653: Address Guava 18 deprecations"
This reverts commit 95cfc0d950861e5bc753ee3b0669aa5c59c217e8.

Many conflicts due to duration between above commit and now
2014-10-24 10:45:58 -07:00
Adrian Cole
b9525a0877 JCLOUDS-40 unasync Fallback 2014-10-06 13:14:59 -07:00
Adrian Cole
0a236f59ad JCLOUDS-153 remove IO Executor and usage of it. 2014-10-06 07:56:31 -07:00
Adrian Cole
100d43360a JCLOUDS-150 clear remaining async stuff from aws 2014-10-05 22:32:27 -07:00
Adrian Cole
044223efcb Rather than rely on or work around JRE behavior based, lock S3ClientMockTest using OkHttp. 2014-10-05 20:14:45 -07:00
Adrian Cole
99e217b720 Move off confusing test names. 2014-10-05 17:22:18 -07:00
Adrian Cole
cacc986dc4 JCLOUDS-40 Remove AsyncBlobStore references from s3 api 2014-10-05 13:18:12 -07:00
Adrian Cole
dfb583b67a JCLOUDS-40 remove all implementations of AsyncBlobStore except Submission in preparation for complete removal. 2014-10-05 08:49:38 -07:00