media.object.s3

Generated at from openvibe-contracts v0.177.0 and openvibe-sdk v0.44.0.

Grantable to apps: request it for an app on its project page. Network approves it only inside the project's allowance.

OpenVibe.Media's S3 surface (ADR-031), path style at https://s3.openvibe.media/<zone name>/<key>: PutObject (one request, aws-chunked bodies included, Content-MD5 and x-amz-checksum-* checked), GetObject (ranges), HeadObject, DeleteObject, DeleteObjects, ListObjectsV2 and ListObjects (prefix, delimiter, pages), ListBuckets, HeadBucket, GetBucketLocation, and presigned GET and PUT (SigV4 query, 7 days at most). multipart uploads (CreateMultipartUpload, UploadPart, CompleteMultipartUpload, AbortMultipartUpload, ListParts, ListMultipartUploads; every part but the last at least 5 MiB, parts of 256 MB and objects of 20 GB at most by default, 10000 parts, an upload expiring after a day). CopyObject and UploadPartCopy, server-side within the key's environment: the source (x-amz-copy-source) is read with the same key, COPY keeps its type and metadata and REPLACE takes the request's, the x-amz-copy-source-if-* conditions hold, a part may be a byte range (x-amz-copy-source-range), and the destination is written through the same commit path (quota, holds, the previous object's deletion). Everything else answers NotImplemented (ACLs, policies, versioning, a versionId copy source; buckets are made and deleted only through OpenVibe.Zone). It is reached with a media.access-key@1 rather than a Network token: the key fixes the project and environment, so a bucket name names one zone of that environment, and a key scoped to zones reaches only those. A request is authorised as the project's app would be: the same quotas (the zone's and the environment's), the same objects as the native API, and Media's one deletion path (a held object is neither deleted nor overwritten). Responses carry a sandbox Content-Security-Policy.

Owner
media (token audience openvibe.media)
Version
1.0
Status
active
Visibility
public
Resource constraints
project
Quota class
standard
Permissions
objects:read, objects:write
Input
common.no-body@1
Output
common.no-body@1
Events
media.object.uploaded, media.object.deleted
Implemented by
  • GET s3:/
  • HEAD s3:/:zone
  • GET s3:/:zone
  • POST s3:/:zone?delete
  • PUT s3:/:zone/:key
  • GET s3:/:zone/:key
  • HEAD s3:/:zone/:key
  • DELETE s3:/:zone/:key
  • POST s3:/:zone/:key?uploads
  • PUT s3:/:zone/:key?partNumber&uploadId
  • POST s3:/:zone/:key?uploadId
  • DELETE s3:/:zone/:key?uploadId
  • GET s3:/:zone/:key?uploadId
  • GET s3:/:zone?uploads

These routes in the API explorer