Skip to content

GitHub Actions to sync files in a directory to Aliyun OSS with a prefix incrementally, with filename filter.

Notifications You must be signed in to change notification settings

Menci/upload-to-oss

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Action for upload files to Aliyun OSS

Upload files in a directory to Aliyun OSS with a prefix incrementally, with filename filter.

Incremental upload is implemented by comparing local MD5 and remote eTag (eTag = MD5 when uploaded with PutObject).

Usage

jobs:
  build-and-deploy:
    name: Build and Deploy website to OSS
    runs-on: ubuntu-latest
    steps:
      - name: Check out
        uses: actions/checkout@v2
      # ... build your static website
      - uses: Menci/upload-to-oss@beta-v1
        with:
          # Use Access Key
          access-key-id: ${{ secrets.ALIYUN_ACCESS_KEY_ID }}
          access-key-secret: ${{ secrets.ALIYUN_ACCESS_KEY_SECRET }}
          # Or use STS Token
          # security-token: ${{ secrets.ALIYUN_SECURITY_TOKEN }}

          bucket: ${{ secrets.ALIYUN_OSS_BUCKET }}
          endpoint: ${{ secrets.ALIYUN_OSS_ENDPOINT }}

          # Upload the built website files in "dist" directory to remote "my-website/" prefix
          local-path: dist
          remote-path: my-website

          # Include HTML files only
          include-regex: \.html$
          # Exclude some files
          excluce-regex: dont-upload-this\.html$

          # Set some headers (JS function or just in JSON)
          headers: |
            filename => (
              {
                "Cache-Control": `public, max-age=${filename.endsWith(".html") ? 60 : 604800}`
              }
            )

          # Upload ALL other files before uploading HTML files
          delay-html-file-upload: true

          # Prevent deleting missing remote files compared to local (defaults to `false`)
          no-delete-remote-files: true

          # Retry 5 times on failure of each OSS operation
          retry: 5

          # Use increment or not
          increment: true

About

GitHub Actions to sync files in a directory to Aliyun OSS with a prefix incrementally, with filename filter.

Resources

Stars

Watchers

Forks

Packages

No packages published