sanity-plugin-s3-files
Version:
Store Sanity media files in AWS S3
41 lines (40 loc) • 1.82 kB
TypeScript
import { VendorConfiguration } from 'sanity-plugin-external-files';
export declare const s3Files: import("sanity").Plugin<UserConfig | undefined>;
interface UserConfig extends Pick<Partial<VendorConfiguration>, 'defaultAccept' | 'schemaPrefix'> {
toolTitle?: string;
/**
* @optional
* Credentials for accessing the S3 bucket.
*
* Leave this empty if you don't want to store credentials in the JS bundle of the Sanity studio, and instead prefer storing them in the dataset as a private document.
* If empty, the user will be prompted to enter credentials when they first open the media library.
*
* This configuration can be partial: credentials not provided here will be prompted to be stored inside of Sanity.
* For example, you may want to store the public-facing `bucketKey` and `bucketRegion` in the JS bundle, but keep `secretForValidating` in the Sanity dataset.
*/
credentials?: Partial<S3Credentials>;
}
export interface S3Credentials {
/** S3 bucket key */
bucketKey?: string;
/** S3 bucket region */
bucketRegion?: string;
/** HTTPS endpoint that returns S3's signed URLs for uploading objects from the browser */
getSignedUrlEndpoint?: string;
/** HTTPS endpoint for deleting an object in S3 */
deleteObjectEndpoint?: string;
/**
* @optional
* Folder to store files inside the bucket. If none provided, will upload files to the bucket's root.
*/
folder?: string;
/**
* @optional
* Secret for validating the signed URL request (optional)
*
* 🚨 Give preference to storing this value in Sanity by leaving this configuration empty.
* When you populate it here, it'll show up in the JS bundle of the Sanity studio.
*/
secretForValidating?: string;
}
export {};