w3-web-svc-picture
Purpose
Apollo Federation subgraph that lists folders and files in an S3 bucket and returns signed CloudFront URLs for access.
Architecture
- Apollo subgraph with
@apollo/server+@apollo/subgraph. - Loads config from AWS SSM Parameter Store then
.env. - Uses AWS SDK v3
S3Clientto list objects. - Generates signed CloudFront URLs using key pair and private key.
GraphQL API
pictureFolders(prefix: String): [String!]!- Lists direct folder prefixes under the bucket (or under
prefix).
- Lists direct folder prefixes under the bucket (or under
pictureFiles(prefix: String!, continuationToken: String): PictureFilesPage!- Lists objects under
prefixand returns signed URLs.
- Lists objects under
Types:
PictureFilesPage { items: [PictureFile!]!, nextToken: String }PictureFile { key: String!, url: String! }
Configuration highlights
AWS_REGIONS3_MY_PICTURESCLOUDFRONT_DOMAIN,CLOUDFRONT_KEY_PAIR_ID,CLOUDFRONT_PRIVATE_KEY_PATH,CLOUDFRONT_EXPIRES_SECONDSMONGODB_CONNECTION_STRING,MONGODB_MAX_POOL_SIZE(shared config pattern)