astro-uploader/README.md

1.8 KiB

Astro Uploader

A uploader for uploading the Astro generated files through the S3 API. This uploader is based on the Apache OpenDAL™. If you have any issues in uploading, it could be the issues in OpenDAL, remember to upgrade the OpenDAL to the latest version.

Installation

# Use npm
npm install -D astro-uploader

# Use pnpm
pnpm add -D astro-uploader

# Use yarn
yarn add -D astro-uploader
// astro.config.ts
import { defineConfig } from 'astro/config'
import { uploader, type Options } from 'astro-uploader'

export default defineConfig({
  integrations: [
    uploader({
      paths: ['images', 'og', 'cats'],
      endpoint: process.env.S3_ENDPOINT,
      bucket: process.env.S3_BUCKET as string,
      accessKey: process.env.S3_ACCESS_KEY as string,
      secretAccessKey: process.env.S3_SECRET_ACCESS_KEY as string,
    }),
  ],
})

Options

type Options = {
  // The directories that you want to upload to S3.
  paths: string[];
  // Whether to keep the original files after uploading.
  keep?: boolean;
  // Whether to override the existing files on S3.
  // It will be override only when the content-length don't match the file size by default.
  override?: boolean;
  // The S3 region, set it if you use AWS S3 service.
  region?: string;
  // The endpoint, set it if you use 3rd-party S3 service.
  endpoint?: string;
  // The name of the bucket.
  bucket: string;
  // The root directory you want to upload files.
  root?: string;
  // The access key id.
  accessKey: string;
  // The secret access key.
  secretAccessKey: string;
  // All the methods in https://docs.rs/opendal/latest/opendal/services/struct.S3.html#implementations can be treated as an extra option.
  extraOptions?: Record<string, string>
};