ExOss.Client.Client (ExOss v0.1.0)

Copy Markdown View Source

Client configuration struct.

Required Fields

FieldTypeDescription

| provider | :aws | :qiniu | :custom | Storage provider | | access_key_id | String.t() | Access key | | secret_access_key | String.t() | Secret key |

Optional Fields

FieldTypeDefaultDescription
regionString.t()"us-east-1"Storage region
endpointString.t()autoCustom endpoint URL
bucketString.t()nilDefault bucket
schemeString.t()"https://"URL scheme
portinteger()443Port number

| bucket_addressing | :virtual | :path | :virtual | Bucket addressing style | | cdn_upload | boolean() | true | Use CDN for uploads | | cdn_download | boolean() | true | Use CDN for downloads | | cdn | CDN.t() | nil | CDN configuration |

Region Values

AWS S3: "us-east-1", "us-west-2", "eu-west-1", "ap-northeast-1", etc.

Qiniu (S3): "cn-east-1", "cn-north-1", "cn-south-1", etc.

Custom: Any S3-compatible service (MinIO, DigitalOcean Spaces, Cloudflare R2, etc.)

Summary

Types

t()

@type t() :: %ExOss.Client.Client{
  access_key_id: String.t(),
  bucket: String.t() | nil,
  bucket_addressing: :path | :virtual,
  cdn: ExOss.Client.CDN.t() | nil,
  cdn_download: boolean(),
  cdn_upload: boolean(),
  endpoint: String.t() | nil,
  port: non_neg_integer(),
  provider: :aws | :qiniu | :custom,
  region: String.t() | nil,
  scheme: String.t(),
  secret_access_key: String.t()
}