import { S3ClientConfig } from '@aws-sdk/client-s3'; type CreateCloudflareClientParameters = { /** * Cloudflare R2 access key ID. */ accessKeyId: string; /** * Cloudflare account ID. */ accountId: string; /** * The jurisdiction where the data is stored. * * Only use this if you created your R2 bucket using a jurisdiction. */ jurisdiction?: "eu" | "fedramp"; /** * Cloudflare R2 secret access key. */ secretAccessKey: string; }; type CreateMinioClientParameters = { /** * Minio access key ID. */ accessKeyId: string; /** * Minio endpoint. */ endpoint: string; /** * Minio region. */ region: string; /** * Minio secret access key. */ secretAccessKey: string; }; type CreateBackblazeClientParameters = { /** * Backblaze B2 application key. */ applicationKey: string; /** * Backblaze B2 application key ID. */ applicationKeyId: string; /** * Backblaze B2 region. */ region: string; }; type CreateWasabiClientParameters = { /** * Wasabi access key ID. */ accessKeyId: string; /** * Wasabi region. */ region: string; /** * Wasabi secret access key. */ secretAccessKey: string; }; type CreateDigitalOceanClientParameters = { /** * DigitalOcean Spaces key. */ key: string; /** * DigitalOcean Spaces region. */ region: string; /** * DigitalOcean Spaces secret. */ secret: string; }; type CreateTigrisClientParameters = { /** * Tigris access key ID. */ accessKeyId: string; /** * Tigris endpoint. * @default `https://t3.storage.dev` */ endpoint?: string; /** * Tigris secret access key. */ secretAccessKey: string; }; type CreateHetznerClientParameters = { /** * Hetzner Object Storage access key ID. */ accessKeyId: string; /** * Hetzner Object Storage location. Used as both the region and the * subdomain of the endpoint (`https://{location}.your-objectstorage.com`). */ location: "fsn1" | "hel1" | "nbg1"; /** * Hetzner Object Storage secret access key. */ secretAccessKey: string; }; type CreateAkamaiClientParameters = { /** * Akamai Cloud Object Storage access key ID. */ accessKeyId: string; /** * Override the endpoint. When unset, defaults to * `https://${region}.linodeobjects.com`. The `linodeobjects.com` domain * is unchanged from the Linode era — only the product branding moved * to Akamai. */ endpoint?: string; /** * Akamai Cloud Object Storage region/cluster code (formerly Linode Object * Storage). Examples: `"us-iad-1"`, `"us-mia-1"`, `"us-ord-1"`, * `"nl-ams-1"`, `"fr-par-1"`, `"gb-lon-1"`, `"jp-osa-1"`, plus the older * `"us-east-1"` / `"eu-central-1"` / `"ap-south-1"` clusters. */ region: string; /** * Akamai Cloud Object Storage secret access key. */ secretAccessKey: string; }; type CreateStorjClientParameters = { /** * Storj S3 Gateway access key (derived from a Storj access grant). */ accessKeyId: string; /** * Override the Storj S3 Gateway endpoint. * @default `https://gateway.storjshare.io` */ endpoint?: string; /** * Storj S3 Gateway secret key (derived from a Storj access grant). */ secretAccessKey: string; }; type CreateScalewayClientParameters = { /** * Scaleway Object Storage access key ID. */ accessKeyId: string; /** * Override the endpoint. When unset, defaults to * `https://s3.${region}.scw.cloud`. */ endpoint?: string; /** * Scaleway region. Used as both the S3 region and the endpoint subdomain. */ region: "fr-par" | "nl-ams" | "pl-waw"; /** * Scaleway Object Storage secret access key. */ secretAccessKey: string; }; type CreateVultrClientParameters = { /** * Vultr Object Storage access key. */ accessKeyId: string; /** * Vultr Object Storage cluster/location code. Used as both the S3 region * and the endpoint subdomain (`https://{location}.vultrobjects.com`). * Examples: `"ewr1"`, `"sjc1"`, `"ams1"`, `"sgp1"`, `"del1"`, `"blr1"`. */ location: string; /** * Vultr Object Storage secret key. */ secretAccessKey: string; }; type CreateExoscaleClientParameters = { /** * Exoscale SOS API key. */ accessKeyId: string; /** * Exoscale SOS API secret. */ secretAccessKey: string; /** * Exoscale zone. Used as both the S3 region and the endpoint subdomain * (`https://sos-{zone}.exo.io`). Examples: `"ch-gva-2"`, `"ch-dk-2"`, * `"de-fra-1"`, `"de-muc-1"`, `"at-vie-1"`, `"at-vie-2"`, `"bg-sof-1"`. */ zone: string; }; type CreateFilebaseClientParameters = { /** * Filebase access key. */ accessKeyId: string; /** * Override the Filebase endpoint. * @default `https://s3.filebase.com` */ endpoint?: string; /** * Filebase secret key. */ secretAccessKey: string; }; type CreateIDriveE2ClientParameters = { /** * iDrive e2 access key ID. */ accessKeyId: string; /** * iDrive e2 endpoint. Account/region specific (assigned by iDrive), e.g. * `https://x9y8.va.idrivee2-12.com` — there is no deterministic default, * so the endpoint must be supplied. */ endpoint: string; /** * iDrive e2 region. * @default `us-east-1` */ region?: string; /** * iDrive e2 secret access key. */ secretAccessKey: string; }; type CreateIbmCosClientParameters = { /** * IBM Cloud Object Storage HMAC access key ID. */ accessKeyId: string; /** * Override the endpoint. When unset, defaults to * `https://s3.${region}.cloud-object-storage.appdomain.cloud`. */ endpoint?: string; /** * IBM COS region. Used as both the S3 region and the endpoint subdomain. * Examples: `"us-south"`, `"us-east"`, `"eu-gb"`, `"eu-de"`, `"jp-tok"`, * `"au-syd"`, `"ca-tor"`, `"br-sao"`. */ region: string; /** * IBM Cloud Object Storage HMAC secret access key. */ secretAccessKey: string; }; type CreateOracleCloudClientParameters = { /** * OCI Object Storage Customer Secret Key access key ID. */ accessKeyId: string; /** * Object Storage namespace (tenancy-specific). Forms part of the endpoint * host: `https://{namespace}.compat.objectstorage.{region}.oraclecloud.com`. */ namespace: string; /** * OCI region. Examples: `"us-ashburn-1"`, `"us-phoenix-1"`, * `"eu-frankfurt-1"`, `"uk-london-1"`, `"ap-tokyo-1"`. */ region: string; /** * OCI Object Storage Customer Secret Key. */ secretAccessKey: string; }; type CreateOvhCloudClientParameters = { /** * OVHcloud Object Storage access key. */ accessKeyId: string; /** * Override the endpoint. When unset, defaults to the High Performance * (S3) endpoint `https://s3.${region}.io.cloud.ovh.net`. For the * Standard (Swift) offering pass `https://s3.${region}.cloud.ovh.net`. */ endpoint?: string; /** * OVHcloud region. Used as both the S3 region and the endpoint subdomain. * Examples: `"gra"`, `"sbg"`, `"de"`, `"uk"`, `"waw"`, `"bhs"`, `"rbx"`. */ region: string; /** * OVHcloud Object Storage secret key. */ secretAccessKey: string; }; type CreateAlibabaClientParameters = { /** * Alibaba Cloud OSS access key ID. */ accessKeyId: string; /** * Override the endpoint. When unset, defaults to * `https://oss-${region}.aliyuncs.com`. */ endpoint?: string; /** * Alibaba Cloud OSS region. Used as both the S3 region and the endpoint * subdomain. Examples: `"cn-hangzhou"`, `"cn-shanghai"`, `"cn-beijing"`, * `"ap-southeast-1"`, `"us-east-1"`, `"eu-central-1"`. */ region: string; /** * Alibaba Cloud OSS access key secret. */ secretAccessKey: string; }; type CreateTencentClientParameters = { /** * Tencent COS secret ID. */ accessKeyId: string; /** * Override the endpoint. When unset, defaults to * `https://cos.${region}.myqcloud.com`. */ endpoint?: string; /** * Tencent COS region. Used as both the S3 region and the endpoint * subdomain. Examples: `"ap-guangzhou"`, `"ap-shanghai"`, `"ap-beijing"`, * `"ap-singapore"`, `"na-siliconvalley"`, `"eu-frankfurt"`. */ region: string; /** * Tencent COS secret key. */ secretAccessKey: string; }; type CreateYandexClientParameters = { /** * Yandex Object Storage access key ID. */ accessKeyId: string; /** * Override the Yandex Object Storage endpoint. * @default `https://storage.yandexcloud.net` */ endpoint?: string; /** * SigV4 signing region. Yandex serves a single global endpoint, so this * does not drive routing. * @default `ru-central1` */ region?: string; /** * Yandex Object Storage secret access key. */ secretAccessKey: string; }; /** * Create an Akamai Cloud Object Storage client, compatible with the S3 API. * * Akamai Cloud Object Storage is the rebranded Linode Object Storage; the * underlying `linodeobjects.com` domain is unchanged. * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `AKAMAI_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `AKAMAI_SECRET_ACCESS_KEY` * - `AKAMAI_REGION` (e.g. `us-iad-1`) */ declare const akamai: (parameters?: Partial) => S3ClientConfig; /** * Create an Alibaba Cloud OSS client, compatible with the S3 API. * * The region is part of the default endpoint hostname, so it is not read * from `AWS_REGION` (which is commonly set to an AWS region in dev/CI and * would silently produce a broken endpoint). * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `ALIBABA_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `ALIBABA_ACCESS_KEY_SECRET` * - `ALIBABA_REGION` (e.g. `cn-hangzhou`, `ap-southeast-1`, `eu-central-1`) * - `ALIBABA_ENDPOINT` */ declare const alibaba: (parameters?: CreateAlibabaClientParameters) => S3ClientConfig; /** * Create a Backblaze B2 client, compatible with the S3 API. * * Optionally, you can omit the parameters and use the following environment variables: * - `B2_REGION` * - `B2_APP_KEY_ID` * - `B2_APP_KEY` */ declare const backblaze: (parameters?: CreateBackblazeClientParameters) => S3ClientConfig; /** * Create a Cloudflare R2 client, compatible with the S3 API. * * Optionally, you can omit the parameters and use the following environment variables: * - `CLOUDFLARE_ACCOUNT_ID` * - `AWS_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` * - `CLOUDFLARE_JURISDICTION` */ declare const cloudflare: (parameters?: CreateCloudflareClientParameters) => S3ClientConfig; /** * Create a DigitalOcean Spaces client, compatible with the S3 API. * * Optionally, you can omit the parameters and use the following environment variables: * - `SPACES_REGION` * - `SPACES_KEY` * - `SPACES_SECRET` */ declare const digitalOcean: (parameters?: CreateDigitalOceanClientParameters) => S3ClientConfig; /** * Create an Exoscale SOS client, compatible with the S3 API. * * The zone is part of the endpoint hostname, so it is not read from * `AWS_REGION` (which is commonly set to an AWS region in dev/CI and would * silently produce a broken endpoint). * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `EXOSCALE_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `EXOSCALE_SECRET_ACCESS_KEY` * - `EXOSCALE_ZONE` (e.g. `ch-gva-2`, `de-fra-1`, `at-vie-1`) */ declare const exoscale: (parameters?: CreateExoscaleClientParameters) => S3ClientConfig; /** * Create a Filebase client, compatible with the S3 API. * * Filebase exposes a single global endpoint and ignores the region, so only * credentials are required. * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `FILEBASE_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `FILEBASE_SECRET_ACCESS_KEY` * - `FILEBASE_ENDPOINT` (defaults to `https://s3.filebase.com`) */ declare const filebase: (parameters?: CreateFilebaseClientParameters) => S3ClientConfig; /** * Create a Hetzner Object Storage client, compatible with the S3 API. * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `HETZNER_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `HETZNER_SECRET_ACCESS_KEY` * - `HETZNER_LOCATION` (one of `fsn1`, `nbg1`, `hel1`) */ declare const hetzner: (parameters?: CreateHetznerClientParameters) => S3ClientConfig; /** * Create an IBM Cloud Object Storage client, compatible with the S3 API. * * Requires HMAC credentials (a Customer Secret Key, not an IAM API key). * * The region is part of the default endpoint hostname, so it is not read * from `AWS_REGION` (which is commonly set to an AWS region in dev/CI and * would silently produce a broken endpoint). * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `IBM_COS_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `IBM_COS_SECRET_ACCESS_KEY` * - `IBM_COS_REGION` (e.g. `us-south`, `eu-de`, `jp-tok`) * - `IBM_COS_ENDPOINT` */ declare const ibmCos: (parameters?: CreateIbmCosClientParameters) => S3ClientConfig; /** * Create an iDrive e2 client, compatible with the S3 API. * * iDrive e2 endpoints are account/region specific and assigned by iDrive * (e.g. `https://x9y8.va.idrivee2-12.com`), so the endpoint must be supplied. * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `IDRIVE_E2_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `IDRIVE_E2_SECRET_ACCESS_KEY` * - `IDRIVE_E2_ENDPOINT` * - `IDRIVE_E2_REGION` (defaults to `us-east-1`) */ declare const idriveE2: (parameters?: CreateIDriveE2ClientParameters) => S3ClientConfig; /** * Create a Minio client, compatible with the S3 API. * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_REGION` * - `AWS_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` * - `MINIO_ENDPOINT` */ declare const minio: (parameters?: CreateMinioClientParameters) => S3ClientConfig; /** * Create an Oracle Cloud Infrastructure (OCI) Object Storage client, using * the S3 Compatibility API. * * Requires a Customer Secret Key (generated under the user's API keys) and * the tenancy's Object Storage namespace. * * The region is part of the endpoint hostname, so it is not read from * `AWS_REGION` (commonly set to an AWS region in dev/CI, which would * silently produce a broken endpoint). * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `ORACLE_CLOUD_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `ORACLE_CLOUD_SECRET_ACCESS_KEY` * - `ORACLE_CLOUD_NAMESPACE` * - `ORACLE_CLOUD_REGION` (e.g. `us-ashburn-1`, `eu-frankfurt-1`) */ declare const oracleCloud: (parameters?: CreateOracleCloudClientParameters) => S3ClientConfig; /** * Create an OVHcloud Object Storage client, compatible with the S3 API. * * Defaults to the High Performance (S3) endpoint. For the Standard (Swift) * offering pass `endpoint: https://s3.{region}.cloud.ovh.net`. * * The region is part of the default endpoint hostname and the SigV4 signing * scope, both of which require lowercase, so the region is lowercased (the * OVH console displays it uppercase, e.g. `GRA`). It is not read from * `AWS_REGION` (commonly set to an AWS region in dev/CI, which would * silently produce a broken endpoint). * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `OVHCLOUD_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `OVHCLOUD_SECRET_ACCESS_KEY` * - `OVHCLOUD_REGION` (e.g. `gra`, `sbg`, `de`, `uk`, `waw`, `bhs`) * - `OVHCLOUD_ENDPOINT` */ declare const ovhCloud: (parameters?: CreateOvhCloudClientParameters) => S3ClientConfig; /** * Create a Scaleway Object Storage client, compatible with the S3 API. * * The region is part of the endpoint hostname, so it is not read from * `AWS_REGION` (which is commonly set to an AWS region in dev/CI and would * silently produce a broken endpoint). * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `SCALEWAY_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `SCALEWAY_SECRET_ACCESS_KEY` * - `SCALEWAY_REGION` (one of `fr-par`, `nl-ams`, `pl-waw`) */ declare const scaleway: (parameters?: CreateScalewayClientParameters) => S3ClientConfig; /** * Create a Storj S3 Gateway client, compatible with the S3 API. * * Credentials are derived from a Storj access grant via the * `storj.io/uplink` CLI or web console. The default endpoint targets the * global Storj S3 Gateway; self-hosted gateways can override via `endpoint`. * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `STORJ_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `STORJ_SECRET_ACCESS_KEY` * - `STORJ_ENDPOINT` (defaults to `https://gateway.storjshare.io`) */ declare const storj: (parameters?: CreateStorjClientParameters) => S3ClientConfig; /** * Create a Tencent Cloud COS client, compatible with the S3 API. * * The bucket name must include the APPID suffix (e.g. * `uploads-1250000000`); the S3-compatible API expects the full form. * * The region is part of the default endpoint hostname, so it is not read * from `AWS_REGION` (which is commonly set to an AWS region in dev/CI and * would silently produce a broken endpoint). * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `TENCENT_SECRET_ID` * - `AWS_SECRET_ACCESS_KEY` / `TENCENT_SECRET_KEY` * - `TENCENT_REGION` (e.g. `ap-guangzhou`, `ap-singapore`, `eu-frankfurt`) * - `TENCENT_ENDPOINT` */ declare const tencent: (parameters?: CreateTencentClientParameters) => S3ClientConfig; /** * Create a Tigris client, compatible with the S3 API. * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` * - `TIGRIS_ENDPOINT` */ declare const tigris: (parameters?: CreateTigrisClientParameters) => S3ClientConfig; /** * Create a Vultr Object Storage client, compatible with the S3 API. * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `VULTR_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `VULTR_SECRET_ACCESS_KEY` * - `VULTR_LOCATION` (cluster code, e.g. `ewr1`, `sjc1`, `ams1`, `sgp1`) */ declare const vultr: (parameters?: CreateVultrClientParameters) => S3ClientConfig; /** * Create a Wasabi client, compatible with the S3 API. * * Optionally, you can omit the parameters and use the following environment variables: * - `WASABI_REGION` * - `AWS_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` */ declare const wasabi: (parameters?: CreateWasabiClientParameters) => S3ClientConfig; /** * Create a Yandex Object Storage client, compatible with the S3 API. * * Yandex serves a single global endpoint (`https://storage.yandexcloud.net`) * and routes internally, so the region is only the SigV4 signing scope and * defaults to `ru-central1`. It does not drive the endpoint, so falling back * to `AWS_REGION` is safe here. * * Optionally, you can omit the parameters and use the following environment variables: * - `AWS_ACCESS_KEY_ID` / `YANDEX_ACCESS_KEY_ID` * - `AWS_SECRET_ACCESS_KEY` / `YANDEX_SECRET_ACCESS_KEY` * - `AWS_REGION` / `YANDEX_REGION` (defaults to `ru-central1`) * - `YANDEX_ENDPOINT` */ declare const yandex: (parameters?: CreateYandexClientParameters) => S3ClientConfig; export { akamai, alibaba, backblaze, cloudflare, digitalOcean, exoscale, filebase, hetzner, ibmCos, idriveE2, minio, oracleCloud, ovhCloud, scaleway, storj, tencent, tigris, vultr, wasabi, yandex };