import { S3Client } from '@aws-sdk/client-s3'; import { Adapter } from '../index.js'; interface OracleCloudAdapterOptions { bucket: string; /** * OCI tenancy Object Storage namespace — a tenancy-scoped string assigned * by Oracle. Find it under the OCI console: Profile → Tenancy → Object * Storage Namespace, or via `oci os ns get`. Drives the endpoint host * (`.compat.objectstorage..oraclecloud.com`). */ namespace: string; /** * OCI region identifier, e.g. `"us-ashburn-1"`, `"us-phoenix-1"`, * `"eu-frankfurt-1"`, `"uk-london-1"`, `"ap-tokyo-1"`. Drives the endpoint * host; there's no env-var fallback. Doubles as the SigV4 region. */ region: string; /** * Override the OCI endpoint. When unset, defaults to * `https://${namespace}.compat.objectstorage.${region}.oraclecloud.com`. * The namespace prefix is part of the host, not the path — OCI's S3 * compatibility layer scopes the bucket lookup to the namespace. */ endpoint?: string; /** * Customer secret key access key ID. Generate one in the OCI console * under Profile → User Settings → Customer Secret Keys (these are the * HMAC keys used for S3-compatible access, distinct from API signing * keys). */ accessKeyId?: string; secretAccessKey?: string; /** * Use path-style addressing (`//`) rather than virtual-hosted * style. Defaults to `true` for OCI — the namespace-prefixed host already * scopes lookups, and OCI's wildcard cert does not cover the additional * bucket subdomain, so virtual-hosted style typically fails TLS. */ forcePathStyle?: boolean; /** * Origin used to build URLs from `url()`. When set, `url(key)` returns * `${publicBaseUrl}/${key}` and skips signing. For buckets with a * pre-authenticated request or a public visibility setting, point this * at the corresponding URL prefix; a custom domain via the OCI Web * Application Firewall / Load Balancer also works. When unset, `url()` * falls back to a presigned GetObject (default expiry: 1 hour). */ publicBaseUrl?: string; /** * Default expiry, in seconds, for the presigned URLs returned by `url()` * when `publicBaseUrl` is not set. Defaults to 3600 (1 hour). */ defaultUrlExpiresIn?: number; } type OracleCloudAdapter = Adapter; declare const oracleCloud: (opts: OracleCloudAdapterOptions) => OracleCloudAdapter; export { type OracleCloudAdapter, type OracleCloudAdapterOptions, oracleCloud };