X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c36bac7d8ec9f7f579ddfdc06a328fa3668e80a3..b6da0bcc634615e8db9d4546a33b97bb69583afc:/doc/api/keep-s3.html.textile.liquid diff --git a/doc/api/keep-s3.html.textile.liquid b/doc/api/keep-s3.html.textile.liquid index ad27b221fc..1fa186e4e7 100644 --- a/doc/api/keep-s3.html.textile.liquid +++ b/doc/api/keep-s3.html.textile.liquid @@ -21,7 +21,11 @@ To access Arvados S3 using an S3 client library, you must tell it to use the URL The "bucket name" is an Arvados collection uuid, portable data hash, or project uuid. -The bucket name must be encoded as the first path segment of every request. This is what the S3 documentation calls "Path-Style Requests". +Path-style and virtual host-style requests are supported. +* A path-style request uses the hostname indicated by @Services.WebDAVDownload.ExternalURL@, with the bucket name in the first path segment: @https://download.example.com/zzzzz-4zz18-asdfgasdfgasdfg/@. +* A virtual host-style request uses the hostname pattern indicated by @Services.WebDAV.ExternalURL@, with a bucket name in place of the leading @*@: @https://zzzzz-4zz18-asdfgasdfgasdfg.collections.example.com/@. + +If you have wildcard DNS, TLS, and routing set up, an S3 client configured with endpoint @collections.example.com@ should work regardless of which request style it uses. h3. Supported Operations @@ -66,6 +70,24 @@ h4. GetBucketVersioning Bucket versioning is presently not supported, so this will always respond that bucket versioning is not enabled. +h3. Accessing collection/project properties as metadata + +GetObject, HeadObject, and HeadBucket return Arvados object properties as S3 metadata headers, e.g., @X-Amz-Meta-Foo: bar@. + +If the requested path indicates a file or directory placeholder inside a collection, or the top level of a collection, GetObject and HeadObject return the collection properties. + +If the requested path indicates a directory placeholder corresponding to a project, GetObject and HeadObject return the properties of the project. + +HeadBucket returns the properties of the collection or project corresponding to the bucket name. + +Non-string property values are returned in a JSON representation, e.g., @["foo","bar"]@. + +As in Amazon S3, property values containing non-ASCII characters are returned in BASE64-encoded form as described in RFC 2047, e.g., @=?UTF-8?b?4pu1?=@. + +GetBucketTagging and GetObjectTagging APIs are _not_ supported. + +It is not possible to modify collection or project properties using the S3 API. + h3. Authorization mechanisms Keep-web accepts AWS Signature Version 4 (AWS4-HMAC-SHA256) as well as the older V2 AWS signature.