(mOSAIC) Amazon S3 API
References
Amazon Simple Storage Service -- Developer Guide (API Version 2006-03-01);
Amazon Simple Storage Service -- API Reference (API Version 2006-03-01);
API
Generic operations
list-buckets:
reference: REST API -> Operations on the Service -> GET Service;
inputs: authorization;
- outputs:
\ owner \ id \ display-name \ buckets \ bucket * \ name \ creation-date
Bucket operations
create-bucket:
reference: REST API -> Operations on Buckets -> PUT Bucket;
inputs: bucket + authorization + acl? + location-constraint?;
- outputs: none;
delete-bucket:
reference: REST API -> Operations on Buckets -> DELETE Bucket;
inputs: bucket + authorization;
- outputs: none;
list-objects:
reference: REST API -> Operations on Buckets -> GET Bucket (List Objects);
inputs: bucket + authorization
?delimiter ?key-marker ?max-keys ?prefix
- outputs:
\ name \ prefix \ marker \ max-keys \ is-truncated \ contents * \ key \ last-modified \ etag \ size \ storage-class \ owner \ id \ display-name \ common-prefixes \ prefix *
- notes:
by using key-marker and max-keys we can obtain a cursor-like outcomes;
by using delimiter and prefix allows us to operate on "hierarchical" structures by collapsing all objects having a certain common sub-prefix (the sub-prefix starts from where the prefix ends and continues up to the first position of the delimiter);
list-object-versions:
reference: REST API -> Operations on Buckets -> GET Bucket Object Versions;
notes: quite similar with list-objects, but it also lists version or delete-marker instead of contents elements;
Ignored:
versioning related: get-bucket-versioning, put-bucket-versioning;
security related: delete-bucket-policy, get-bucket-acl, get-bucket-policy, put-bucket-acl, put-bucket-policy;
location related: get-bucket-location;
logging related: get-bucket-logging, put-bucket-logging;
notification related: get-bucket-notification, put-bucket-notification;
payment related: get-bucket-request-payment, put-bucket-request-payment;
Object operations
get-object:
reference: REST API -> Operations on Objects -> GET Object;
variants: GET / HEAD;
inputs: bucket + object + authorization + version? + range? + caching?;
outputs: version? + deleted?;
create-object:
reference: REST API -> Operations on Objects -> PUT Object;
variants: PUT / POST / copy;
inputs: bucket + object + authorization + media? + caching? + storage? + meta?;
outputs: version?;
delete-object:
reference: REST API -> Operations on Objects -> DELETE Object;
inputs: bucket + object + authorization;
outputs: version? + deleted?;
- notes:
- it allows us to delete a specific version of the object (if versioning is enabled), or even to "undelete" a deleted object;
Ignored:
security related: get-object-acl;
torrents related: get-object-torrent;