media.object.s3
Generated at from
openvibe-contracts v0.177.0 and
openvibe-sdk v0.44.0.
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:/:zoneGET s3:/:zonePOST s3:/:zone?deletePUT s3:/:zone/:keyGET s3:/:zone/:keyHEAD s3:/:zone/:keyDELETE s3:/:zone/:keyPOST s3:/:zone/:key?uploadsPUT s3:/:zone/:key?partNumber&uploadIdPOST s3:/:zone/:key?uploadIdDELETE s3:/:zone/:key?uploadIdGET s3:/:zone/:key?uploadIdGET s3:/:zone?uploads