Skip to main content
Plugins / S3 Plugin

S3 Plugin

by Woodpecker Authors
Website
publishs3amazonminiostorage

Plugin to publish files and artifacts to Amazon S3 or Minio.


S3 Plugin

The S3 plugin uploads files and build artifacts to your S3 bucket, or S3-compatible bucket such as Minio. The below pipeline configuration demonstrates simple usage:

steps:
  upload:
    image: woodpeckerci/plugin-s3
    settings:
      bucket: my-bucket-name
      access_key: a50d28f4dd477bc184fbd10b376de753
      secret_key: ****************************************
      source: public/**/*
      target: /target/location

Source the aws credentials from secrets:

steps:
  upload:
    image: woodpeckerci/plugin-s3
    settings:
      bucket: my-bucket-name
      access_key:
        from_secret: aws_access_key_id
      secret_key:
        from_secret: aws_secret_access_key
      source: public/**/*
      target: /target/location

Use the build number in the S3 target prefix:

steps:
  upload:
    image: woodpeckerci/plugin-s3
    settings:
      bucket: my-bucket-name
      source: public/**/*
      target: /target/location/${CI_BUILD_NUMBER}

Override the default acl and region:

steps:
- name: upload
  image: woodpeckerci/plugin-s3
  settings:
    bucket: my-bucket-name
    acl: public-read
    region: us-east-1
    source: public/**/*
    target: /target/location

Configure the plugin to strip path prefixes when uploading:

steps:
  upload:
    image: woodpeckerci/plugin-s3
    settings:
      bucket: my-bucket-name
      source: public/**/*
      target: /target/location
      strip_prefix: public/

Configure the plugin to exclude files from upload and compress:

steps:
  upload:
    image: woodpeckerci/plugin-s3
    settings:
      bucket: my-bucket-name
      source: public/**/*
      target: /target/location
      exclude:
        - **/*.xml
      compress: true

Configure the plugin to connect to a Minio server:

steps:
  upload:
    image: woodpeckerci/plugin-s3
    settings:
      bucket: my-bucket-name
      source: public/**/*
      target: /target/location
      path_style: true
      endpoint: https://play.minio.io:9000

Parameter Reference

endpoint : custom endpoint URL (optional, to use a S3 compatible non-Amazon service)

access_key : amazon key (optional)

secret_key : amazon secret key (optional)

bucket : bucket name

region : bucket region (us-east-1, eu-west-1, etc)

acl : access to files that are uploaded (private, public-read, etc)

source : source location of the files, using a glob matching pattern. Location must be within the woodpecker workspace.

target : target location of files in the bucket

encryption : if provided, use server-side encryption

strip_prefix : strip the prefix from source path

exclude : glob exclusion patterns

path_style : whether path style URLs should be used (true for minio)

env_file : load env vars from file

compress : prior to upload, compress files and use gzip content-encoding (false by default)

overwrite : overwrite existing files (true by default)