aws s3 commands or any S3 SDK.
The role reaches every project’s folders, but only a project that reads its input folder (the
default S3FolderSource) processes what you copy into it. A project that reads a
feed fills its own input folder from the feed; a file
copied in beside them is never processed, and stays pending. Reading a feed project’s outputs
with the role works as for any project.
One-time setup
1
Find your AWS principal
The identity that will upload: a role (recommended, for example the one your pipeline runs
as), a user, or a whole AWS account by its 12-digit id.
2
Ask for the role
GET /account/aws-access
returns the current settings (404 before the first PUT).The role reaches every project of your account, so only your organization’s API key or one
of its administrators may create, re-point or revoke it. Any other user gets 403 with
code: "forbidden".3
Allow your principal to assume it
Unless your principal is an administrator, give it permission to assume the role, in your
AWS account:
4
Add an AWS CLI profile
In
~/.aws/config:source_profile is the profile of the principal from step 1. On EC2, ECS or Lambda use
credential_source = Ec2InstanceMetadata (or EcsContainer, Environment) instead. The CLI
assumes the role and renews its one-hour session by itself.Upload
Every project’sstorage.inputPath is inside your s3Prefix:
startOnNewFiles is off. One stopped with POST …/stop, or created
with autoStart: false and never started, waits for it.
S3 shows an object only once its upload is complete, so the project never picks up a partial file.
Uploads through the role are not checked by the API: name inputs with media extensions and give
them distinct base names (
trailer.mov and trailer.mkv would write the same trailer.es.mp4).Download
With an SDK
What the role can do
The prefix holds every project of your account, one folder each.
Revoke the role
If the principal should lose access, for example when the person or pipeline behind it leaves, revoke the role:GET /account/aws-access answers 404 again. A later PUT restores the role for the principal
you name, with a new external ID, so update your profile’s external_id.