Skip to content

Commit

Permalink
Emulate multipart upload with single-part uploads
Browse files Browse the repository at this point in the history
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
two still fail:

test_multipart_upload_size_too_small
test_list_multipart_upload

References #2.
  • Loading branch information
gaul committed Jan 14, 2015
1 parent 869d47a commit c82825a
Show file tree
Hide file tree
Showing 3 changed files with 359 additions and 2 deletions.
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Features
--------
* create, remove, and list buckets (including user-specified regions)
* put, get, delete, and list objects
* copy objects and delete multiple objects (emulated operations)
* copy objects, delete multiple objects, and multi-part uploads (emulated operations)
* store and retrieve object metadata, including user metadata
* authorization via AWS signature v2 (including pre-signed URLs) or anonymous access
* listen on HTTP or HTTPS
Expand Down Expand Up @@ -95,7 +95,6 @@ Limitations
S3Proxy does not support:

* single-part uploads larger than 2 GB ([jclouds issue](https://issues.apache.org/jira/browse/JCLOUDS-264))
* multi-part uploads
* POST uploads
* bucket ACLs ([jclouds issue](https://issues.apache.org/jira/browse/JCLOUDS-660))
* object ACLS ([jclouds issue](https://issues.apache.org/jira/browse/JCLOUDS-732))
Expand Down
1 change: 1 addition & 0 deletions src/main/java/org/gaul/s3proxy/S3ErrorCode.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ enum S3ErrorCode {
"Length Required"),
NO_SUCH_BUCKET(HttpServletResponse.SC_NOT_FOUND, "Not Found"),
NO_SUCH_KEY(HttpServletResponse.SC_NOT_FOUND, "Not Found"),
NO_SUCH_UPLOAD(HttpServletResponse.SC_NOT_FOUND, "Not Found"),
REQUEST_TIME_TOO_SKEWED(HttpServletResponse.SC_FORBIDDEN, "Forbidden"),
REQUEST_TIMEOUT(HttpServletResponse.SC_BAD_REQUEST, "Bad Request"),
SIGNATURE_DOES_NOT_MATCH(HttpServletResponse.SC_FORBIDDEN, "Forbidden");
Expand Down
Loading

0 comments on commit c82825a

Please sign in to comment.