UNPKG

next-video

Version:

A React component for adding video to your Next.js application. It extends both the video element and your Next app with features for automatic video optimization.

63 lines (62 loc) 1.88 kB
import { PutBucketCorsCommand, CreateBucketCommand, PutObjectCommand, ListBucketsCommand, DeletePublicAccessBlockCommand, PutBucketAclCommand } from "@aws-sdk/client-s3"; async function findBucket(s3, callbackFn) { const { Buckets } = await s3.send(new ListBucketsCommand({})); return Buckets?.find(callbackFn); } function createBucket(s3, bucketName, input) { return s3.send(new CreateBucketCommand({ Bucket: bucketName, ...input })); } async function putBucketAcl(s3, bucketName, input) { await s3.send(new DeletePublicAccessBlockCommand({ Bucket: bucketName })); return s3.send(new PutBucketAclCommand({ Bucket: bucketName, ACL: input?.ACL ?? "public-read", ...input })); } function putObject(s3, input) { return s3.send(new PutObjectCommand(input)); } function putBucketCors(s3, bucketName) { return s3.send(new PutBucketCorsCommand({ Bucket: bucketName, CORSConfiguration: { CORSRules: [ { // Allow all headers to be sent to this bucket. AllowedHeaders: ["*"], // Allow only GET and PUT methods to be sent to this bucket. AllowedMethods: ["GET", "PUT"], // Allow only requests from the specified origin. AllowedOrigins: ["*"], // Allow the entity tag (ETag) header to be returned in the response. The ETag header // The entity tag represents a specific version of the object. The ETag reflects // changes only to the contents of an object, not its metadata. ExposeHeaders: ["ETag"], // How long the requesting browser should cache the preflight response. After // this time, the preflight request will have to be made again. MaxAgeSeconds: 3600 } ] } })); } export { createBucket, findBucket, putBucketAcl, putBucketCors, putObject };