# obs-helper-workflow-sample
**Repository Path**: HuaweiCloudDeveloper/obs-helper-workflow-sample
## Basic Information
- **Project Name**: obs-helper-workflow-sample
- **Description**: github workflow样例,用户可以根据样例在华为云OBS上进行桶操作、对象操作
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master-dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-04-07
- **Last Updated**: 2025-06-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OBS Helper action 各功能使用示例
[对象存储服务(Object Storage Service,OBS)](https://www.huaweicloud.com/product/obs.html)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。
您可以使用[OBS Helper action](https://github.com/marketplace/actions/huawei-cloud-obs-helper-action)实现如下对OBS的操作:
1、[上传文件/文件夹](#uploadSample)
2、[下载文件/文件夹](#downloadSample)
3、[创建桶](#createBucketSample)
4、[删除桶](#deleteBucketSample)
# **前置工作**
1、需要开通华为云的OBS服务,进行对象操作时需要提前建好桶。[OBS主页](https://www.huaweicloud.com/product/obs.html),[OBS文档](https://support.huaweicloud.com/obs/);
2、action调用华为云接口需要华为云鉴权,建议将您华为云账户的ak/sk配置于您GitHub工程中的settting-Secret-Actions,分别添加为ACCESSKEY、SECRETACCESSKEY以加密使用,[获取ak/sk方式](https://support.huaweicloud.com/api-obs/obs_04_0116.html);
3、注意替换参数region为自己OBS服务的地区,方便插件配置终端节点 *obs.'\'.myhuaweicloud.com* 来访问您的OBS服务;
4、注意替换参数bucket_name为自己OBS服务的桶名(创建桶时为要创建的桶名)
> 请注意,目前插件只针对中国区站点服务
# **华为云统一鉴权认证**
推荐使用[huaweicloud/auth-action](https://github.com/huaweicloud/auth-action)进行OBS操作的鉴权认证。
```yaml
- name: Authenticate to Huawei Cloud
uses: huaweicloud/auth-action@v1.0.0
with:
access_key_id: ${{ secrets.ACCESSKEY }}
secret_access_key: ${{ secrets.SECRETACCESSKEY }}
region: ''
```
# **参数说明**
## **对象操作参数说明**
| 参数名称 | 参数说明 | 默认值 | 是否必填 |
| :----: | :----: | :----: | :----: |
| access_key | 访问密钥ID。与私有访问密钥关联的唯一标识符,和私有访问密钥(secret_key)一起使用,对请求进行加密签名。建议参照**前置工作**中的步骤2进行设置以加密使用。如果使用了华为云统一鉴权[huaweicloud/auth-action](https://github.com/huaweicloud/auth-action)可以不填写此参数 | 无 | 否 |
| secret_key | 与访问密钥ID(access_key)结合使用的私有访问密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。建议参照**前置工作**中的步骤2进行设置以加密使用。如果使用了华为云统一鉴权[huaweicloud/auth-action](https://github.com/huaweicloud/auth-action)可以不填写此参数 | 无 | 否 |
| region | OBS服务所在区域。用于配置OBS终端节点。如果使用了华为云统一鉴权[huaweicloud/auth-action](https://github.com/huaweicloud/auth-action)可以不填写此参数 | 'cn-north-4' | 否 |
| bucket_name | OBS的目标桶名 | 无 | 是 |
| operation_type | 要进行的操作,上传请使用*upload*,下载请使用*download* | 无 | 是 |
| local_file_path | 对象的本地路径,上传对象时可填写1~10个 | 无 | 是 |
| obs_file_path | 对象在桶内的路径 | 无 | 下载时必填 |
| include_self_folder | 上传/下载文件夹时是否包含文件夹自身,上传/下载单个文件时无意义。默认不包含 | false | 否 |
| exclude | 下载对象时,要排除的对象,上传时无用。不填写时不排除任何对象 | 无 | 否 |
> 请注意,上传/下载时,地址类参数请不要使用操作系统独有的地址符号(如Linux系统的'\~',会被识别成名为'\~'的文件夹)。Github Actions提供的[上下文功能](https://docs.github.com/cn/actions/learn-github-actions/contexts#github-context)中,有一些常用的地址上下文,例如:
```yaml
name: Show Contexts
on:
push:
branches:
master
jobs:
Show-Workspace:
runs-on: ubuntu-latest
steps:
# ${{ github.workspace }}为action运行时的工作目录
- name: Echo Workspace of Action
run: echo ${{ github.workspace }}
# ${{ runner.temp }}为运行器临时目录的路径
- name: Echo Temporary Directory on the Runner
run: echo ${{ runner.temp }}
```
## **桶操作参数说明**
| 参数名称 | 参数说明 | 默认值 | 是否必填 |
| :----: | :----: | :----: | :----: |
| access_key | 访问密钥ID。与私有访问密钥关联的唯一标识符,和私有访问密钥(secret_key)一起使用,对请求进行加密签名。建议参照**前置工作**中的步骤2进行设置以加密使用。如果使用了华为云统一鉴权[huaweicloud/auth-action](https://github.com/huaweicloud/auth-action)可以不填写此参数 | 无 | 否 |
| secret_key | 与访问密钥ID(access_key)结合使用的私有访问密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。建议参照**前置工作**中的步骤2进行设置以加密使用。如果使用了华为云统一鉴权[huaweicloud/auth-action](https://github.com/huaweicloud/auth-action)可以不填写此参数 | 无 | 否 |
| region | OBS服务所在区域。用于配置OBS终端节点。如果使用了华为云统一鉴权[huaweicloud/auth-action](https://github.com/huaweicloud/auth-action)可以不填写此参数 | 'cn-north-4' | 否 |
| bucket_name | OBS的目标桶名 | 无 | 是 |
| operation_type | 要进行的操作,创建桶请使用*createbucket*,删除桶请使用*deletebucket* | 无 | 是 |
| public_read | 创建桶时,是否开放桶公共读权限,不填时默认不开放。如需设置其他权限,请在创建桶后到控制台进行修改 | false | 否 |
| storage_class | 创建桶时,桶的存储类型,不填时默认为*标准存储*| 无 | 否 |
| clear_bucket | 删除桶时,是否清空桶内全部对象/碎片,不填时默认清空 | true | 否 |
## **参数支持列表**
目前OBS支持的区域名称和对应region(区域)、终端节点请见[对象存储服务 OBS](https://developer.huaweicloud.com/endpoint?OBS)
目前OBS支持的存储类型(storage_class)如下
```text
标准存储: standard
低频访问存储: infrequent
归档存储: archive
```
# **对象操作使用样例**
以下action示例片段若无特别说明,均默认使用了华为云统一鉴权[huaweicloud/auth-action](https://github.com/huaweicloud/auth-action)。
```yaml
- name: Authenticate to Huawei Cloud
uses: huaweicloud/auth-action@v1.0.0
with:
access_key_id: ${{ secrets.ACCESSKEY }}
secret_access_key: ${{ secrets.SECRETACCESSKEY }}
region: ''
```
## **上传对象使用样例**
假设您在cn-north-4的OBS桶内包含目录结构:
```text
src
└── upload
```
本地存在目录结构如下(即本仓库的resource/upload目录):
```text
resource
└── upload
├── folder1
├── file1-1.txt
└── file1-2.txt
├── folder2
├── folder2-1
├── folder2-1-1
└── file2-1-1.txt
└── file2-1.txt
├── file1.txt
└── file2.txt
```
### **上传参数说明**
此处仅列出上传对象独有的参数说明,公共参数请见[对象操作参数说明](#objectParams)
| 参数名称 | 参数说明 | 默认值 | 是否必填 |
| :----: | :----: | :----: | :----: |
| operation_type | 'upload' | 无 | 是 |
| local_file_path | 对象的本地路径,可填写1~10个 | 无 | 是 |
| obs_file_path | 要上传到桶内的路径 | 无 | 是 |
### 1、上传文件至OBS
> 注意:上传单个文件时,obs_file_path参数以'/'结尾,代表将文件不重命名传入文件夹中;不以'/'结尾代表将文件以新名称上传至对应路径。
#### 普通上传(不使用统一鉴权示例):
将本地文件resource/upload/file1.txt上传至桶内src/upload中
```yaml
- name: Upload File to OBS
uses: huaweicloud/obs-helper@v1.4.0
id: upload_file_to_obs
with:
access_key: ${{ secrets.ACCESSKEY }}
secret_key: ${{ secrets.SECRETACCESSKEY }}
region: ''
bucket_name: ''
local_file_path: ./resource/upload/file1.txt
obs_file_path: src/upload/
operation_type: upload
```
上传成功后,您的OBS桶内目录结构应该为
```text
src
└── upload
└── file1.txt
```
完整样例: [.github/workflows/upload-file-sample.yml](.github/workflows/upload-file-sample.yml)
#### 重命名上传:
> 注意,重命名上传,是把这个文件重命名后,当成新的文件上传至桶内对应路径,并不会删除桶内原来的这个文件(如果存在的话)
将本地文件resource/upload/file1.txt上传至桶内src/upload并重命名文件为newFile1.txt
```yaml
- name: Upload and Rename File to OBS
uses: huaweicloud/obs-helper@v1.4.0
id: upload_file_to_obs
with:
bucket_name: ''
local_file_path: ./resource/upload/file1.txt
obs_file_path: src/upload/newFile1.txt
operation_type: upload
```
上传成功后,您的OBS桶内目录结构应该为
```text
src
└── upload
└── newFile1.txt
```
完整样例: [.github/workflows/upload-file-rename-sample.yml](.github/workflows/upload-file-rename-sample.yml)
### 2、上传文件夹至OBS
#### 不包含根文件夹上传:
将本地文件夹resource/upload/folder2内的全部文件和文件夹上传至桶内src/upload/newFolder中
```yaml
- name: Upload Folder to OBS
uses: huaweicloud/obs-helper@v1.4.0
id: upload_folder_to_obs
with:
bucket_name: ''
local_file_path: ./resource/upload/folder2
obs_file_path: src/upload/newFolder
operation_type: upload
include_self_folder: false # 此时只上传了resource/upload/folder2内的文件和文件夹
```
因include_self_folder参数为false,所以此时待上传的文件和文件夹如下:
```text
resource
└── upload
├── folder1
├── file1-1.txt
└── file1-2.txt
├── folder2
├── folder2-1(待上传)
├── folder2-1-1(待上传)
└── file2-1-1.txt(待上传)
└── file2-1.txt(待上传)
├── file1.txt
└── file2.txt
```
上传成功后,您的OBS桶内目录结构应该为
```text
src
└── upload
└── newFolder(自动创建)
├── folder2-1
├── folder2-1-1
└── file2-1-1.txt
└── file2-1.txt
```
完整样例: [.github/workflows/upload-folder-sample.yml](.github/workflows/upload-folder-sample.yml)
#### 包含根文件夹上传:
将本地文件夹resource/upload/folder2及其内的全部文件和文件夹上传至桶内src/upload/newFolder中
```yaml
- name: Upload Folder to OBS
uses: huaweicloud/obs-helper@v1.4.0
id: upload_folder_to_obs
with:
bucket_name: ''
local_file_path: ./resource/upload/folder2
obs_file_path: src/upload/newFolder
operation_type: upload
include_self_folder: true # 此时会将folder2文件夹也上传到src/upload/newFolder中
```
因include_self_folder参数为true,上传文件夹时包含文件夹自身,所以此时待上传的文件和文件夹如下:
```text
resource
└── upload
├── folder1
├── file1-1.txt
└── file1-2.txt
├── folder2(待上传)
├── folder2-1(待上传)
├── folder2-1-1(待上传)
└── file2-1-1.txt(待上传)
└── file2-1.txt(待上传)
├── file1.txt
└── file2.txt
```
上传成功后,您的OBS桶内目录结构应该为
```text
src
└── upload
└── newFolder(自动创建)
└── folder2
├── folder2-1
├── folder2-1-1
└── file2-1-1.txt
└── file2-1.txt
```
完整样例: [.github/workflows/upload-folder-include-self-sample.yml](.github/workflows/upload-folder-include-self-sample.yml)
### 3、上传多个文件/文件夹至OBS
#### 将本地文件夹resource/upload/folder1、resource/upload/folder2,和本地文件resource/upload/file1.txt上传至桶内src/upload目录中
上传多文件/文件夹时,include_self_folder参数仅对文件夹有效,对文件无效,file1.txt在上传成功后的路径为src/upload/file1.txt。请注意不要使用超过10个本地路径。
```yaml
- name: Upload Folder and File to OBS
uses: huaweicloud/obs-helper@v1.4.0
id: upload_multi_files_to_obs
with:
bucket_name: ''
local_file_path: |
./resource/upload/folder1
./resource/upload/folder2
./resource/upload/file1.txt
obs_file_path: src/upload
operation_type: upload
include_self_folder: true
```
因include_self_folder参数为true,所以此时待上传的文件和文件夹如下:
```text
resource
└── upload
├── folder1(待上传)
├── file1-1.txt(待上传)
└── file1-2.txt(待上传)
├── folder2(待上传)
├── folder2-1(待上传)
├── folder2-1-1(待上传)
└── file2-1-1.txt(待上传)
└── file2-1.txt(待上传)
├── file1.txt(待上传)
└── file2.txt
```
上传成功后,您的OBS桶内目录结构应该为
```text
src
└── upload
├── folder1
├── file1-1.txt
└── file1-2.txt
├── folder2
├── folder2-1
├── folder2-1-1
└── file2-1-1.txt
└── file2-1.txt
└── file1.txt
```
完整样例: [.github/workflows/upload-multi-files-sample.yml](.github/workflows/upload-multi-files-sample.yml)
## **下载对象使用样例**
假设您的OBS桶内包含目录结构:
```text
src
└── download
├── obsFolder1
├── obsFile1-1.txt
└── obsFile1-2.txt
├── obsFolder2
└── obsFile2-1.txt
└── obsFile1.txt
```
并且本地存在目录(即本仓库的resource/download目录):
```text
resource
└── download
└── obsFile2-1.txt(文件夹)
└── localFile.txt
```
### **下载参数说明**
此处仅列出下载对象独有的参数说明,公共参数请见[对象操作参数说明](#objectParams)
| 参数名称 | 参数说明 | 默认值 | 是否必填 |
| :----: | :----: | :----: | :----: |
| operation_type | 'download' | 无 | 是 |
| local_file_path | 对象的本地路径 | 无 | 是 |
| obs_file_path | 对象在桶内的路径 | 无 | 是 |
| exclude | 下载对象时,要排除的对象,不填时默认不排除 | 无 | 否 |
> 注意:下载单个文件时,local_file_path参数以'/'结尾,代表将文件不重命名传入文件夹中;不以'/'结尾代表将文件以新名称上传至对应路径。
### 1、从OBS下载文件
下载文件时,首先会检查本地是否存与local_file_path同名的文件/文件夹,
如果不存在同名文件/文件夹,会尝试将文件下载为文件local_file_path;
如果存在同名文件,则会覆盖此文件下载;
如果存在同名文件夹,则会尝试将文件下载至此文件夹中,若此文件夹中仍有和目标文件同名的文件夹,则本次下载会失败。
具体示例如下:
#### 普通下载:
下载obs中的文件src/download/obsFile1.txt至本地resource/download目录下
```yaml
- name: Download File from OBS
uses: huaweicloud/obs-helper@v1.4.0
id: download_file_from_obs
with:
bucket_name: ''
obs_file_path: src/download/obsFile1.txt
local_file_path: ./resource/download/
operation_type: download
```
下载成功后,本地的目录结构应该为:
```text
resource
└── download
├── obsFile2-1.txt
└── localFile.txt
└── obsFile1.txt(此次下载的文件)
```
1.本地存在文件夹'resource'、'resource/download';
2.'resource/download'文件夹中不存在名为'obsFile1.txt'的文件夹;
所以最终obs上的对象'src/download/obsFile1.txt'会下载为本地文件'resource/download/obsFile1.txt'
完整样例: [.github/workflows/download-file-sample.yml](.github/workflows/download-file-sample.yml)
#### 重命名下载:
下载obs中的文件src/download/obsFile1.txt至本地resource/download目录,并重命名为file3.txt
```yaml
- name: Download and Rename File from OBS
uses: huaweicloud/obs-helper@v1.4.0
id: download_file_from_obs
with:
bucket_name: ''
obs_file_path: src/download/obsFile1.txt
local_file_path: ./resource/download/file3.txt
operation_type: download
```
下载成功后,本地的目录结构应该为:
```text
resource
└── download
├── obsFile2-1.txt
└── localFile.txt
└── file3.txt(此次下载的文件)
```
1.本地文件夹'resource'、'resource/download'都存在;
2.'resource/download'文件夹中不存在名为'file3.txt'的文件夹;
所以最终obs上的对象'src/download/obsFile1.txt'会下载为本地文件'resource/download/file3.txt'
完整样例: [.github/workflows/download-file-rename-sample.yml](.github/workflows/download-file-rename-sample.yml)
#### 特殊情景-本地目录存在与待下载文件同名的文件夹:
下载obs中的文件src/download/obsFolder2/obsFile2-1.txt至本地resource/download目录
```yaml
- name: Download File from OBS
uses: huaweicloud/obs-helper@v1.4.0
id: download_file_from_obs
with:
bucket_name: ''
obs_file_path: src/download/obsFolder2/obsFile2-1.txt
local_file_path: ./resource/download/
operation_type: download
```
下载成功后,本地的目录结构应该为
```text
resource
└── download
└── obsFile2-1.txt
├── localFile.txt
└── obsFile2-1.txt(此次下载的文件)
```
1.本地文件夹'resource'、'resource/download'都存在;
2.'resource/download'中存在和待下载文件同名的文件夹'obsFile2-1.txt';
3.文件夹'resource/download/obsFile2-1.txt'中不存在文件夹obsFile2-1.txt;
所以最终文件会下载为resource/download/obsFile2-1.txt/obsFile2-1.txt;
Tips:如果文件夹'resource/download/obsFile2-1.txt'中仍然存在文件夹'obsFile2-1.txt',则此次下载会失败。
完整样例: [.github/workflows/download-file-special-sample.yml](.github/workflows/download-file-special-sample.yml)
### 2、从OBS下载文件夹
下载文件夹时,参数*exclude*中的对象在obs不存在时,不会影响本次下载。
#### 普通下载:
下载obs中的src/download文件夹下的内容到本地目录resource/download中
```yaml
- name: Download Folder from OBS
uses: huaweicloud/obs-helper@v1.4.0
id: download_folder_from_obs
with:
bucket_name: ''
obs_file_path: src/download
local_file_path: ./resource/download
operation_type: download
```
此时待下载的文件和文件夹如下:
```text
src
└── download
├── obsFolder1(待下载)
├── obsFile1-1.txt(待下载)
└── obsFile1-2.txt(待下载)
├── obsFolder2(待下载)
└── obsFile2-1.txt(待下载)
└── obsFile1.txt(待下载)
```
下载成功后,本地的目录结构应该为
```text
resource
└── download
├── obsFolder1(此次下载的文件夹)
├── obsFile1-1.txt(此次下载的文件)
└── obsFile1-2.txt(此次下载的文件)
├── obsFolder2(此次下载的文件夹)
└── obsFile2-1.txt(此次下载的文件)
├── obsFile1.txt(此次下载的文件)
└── obsFile2-1.txt
└── localFile.txt
```
完整样例: [.github/workflows/download-folder-sample.yml](.github/workflows/download-folder-sample.yml)
#### 排除下载:
下载obs中的src/download文件夹及其内容到本地目录resource/download中,并排除src/upload/folder1文件夹和src/upload/folder2/file2-1.txt
```yaml
- name: Download Folder and Exclude Some Objects from OBS
uses: huaweicloud/obs-helper@v1.4.0
id: download_folder_from_obs
with:
bucket_name: ''
obs_file_path: src/download
local_file_path: ./resource/download
operation_type: download
include_self_folder: true
# 下载时排除的文件/文件夹,可一次排除多个路径
exclude: |
src/download/obsFolder1/obsFile1-1.txt
src/download/obsFolder2
```
因参数include_self_folder为true,并且排除了文件'src/download/obsFolder1/obsFile1-1.txt'和文件夹'src/download/obsFolder2',所以此时待下载的文件和文件夹如下:
```text
src
└── download(待下载)
├── obsFolder1(待下载)
├── obsFile1-1.txt
└── obsFile1-2.txt(待下载)
├── obsFolder2
└── obsFile2-1.txt
└── obsFile1.txt(待下载)
```
下载成功后,本地的目录结构应该为
```text
resource
└── download
├── download(此次下载的文件夹)
├── obsFolder1(此次下载的文件夹)
└── obsFile1-2.txt(此次下载的文件)
└── obsFile1.txt(此次下载的文件)
└── obsFile2-1.txt
└── localFile.txt
```
完整样例: [.github/workflows/download-folder-exculde-objects-sample.yml](.github/workflows/download-folder-exculde-objects-sample.yml)
# **桶操作使用样例**
## **创建桶使用样例**
### **创建桶命名规则**
1.需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。
2.长度范围为3~63个字符,支持**小写字母**、**数字**、“**-**”、“**.**”
3.禁止使用类IP地址(如255.255.255.0)
4.禁止以“-”或“.”开头及结尾
5.禁止两个“.”相邻(如:“my..bucket”)
6.禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)
### **参数说明**
此处仅列出创建桶独有的参数说明,公共参数请见[桶操作参数说明](#bucketParams)
| 参数名称 | 参数说明 | 默认值 | 是否必填 |
| :----: | :----: | :----: | :----: |
| operation_type | 'createbucket' | 无 | 是 |
| public_read | 创建桶时,是否开放桶公共读权限,不填时默认不开放。如需设置其他权限,请在创建桶后到控制台进行修改 | false | 否 |
| storage_class | 创建桶时,桶的存储类型,不填时默认为*标准存储*| 无 | 否 |
### 默认创建:
假设您的OBS中不存在名为'bucket-test'的桶
```yaml
- name: Create Default Bucket on OBS
uses: huaweicloud/obs-helper@v1.4.0
id: create_default_bucket_on_obs
with:
operation_type: createbucket
bucket_name: bucket-test
```
执行成功后,您的OBS中会新增一个名为'bucket-test'的桶,未开放桶的**公共读**权限,存储类型**标准存储**
完整样例: [.github/workflows/create-bucket-default.yml](.github/workflows/create-bucket-default.yml)
### 开放公共读权限&&指定存储类型:
假设您的OBS中不存在名为'bucket-test'的桶
```yaml
- name: Create Bucket on OBS
uses: huaweicloud/obs-helper@v1.4.0
id: create_bucket_with_policy_on_obs
with:
operation_type: createbucket
bucket_name: bucket-test
public_read: true
storage_class: infrequent
```
执行成功后,您的OBS中会新增一个名为'bucket-test'的桶,并且开放桶的**公共读**权限,存储类型为**低频访问存储**
完整样例: [.github/workflows/create-bucket-with-policy.yml](.github/workflows/create-bucket-with-policy.yml)
## **删除桶使用样例**
桶为空时,桶的拥有者可以根据需要删除桶,以免占用桶数量配额。
桶为空包含两方面含义:
1.桶内没有任何对象或对象的任何历史版本。
2.桶内没有任何未合并的多段上传任务,即桶内不存在碎片。
删除桶时,action**默认**会执行如下步骤:
1.判断桶是否为空,若桶非空,清空桶
2.删除桶
若不允许action执行清空步骤,请设置参数*clear_bucket*为false。此时如果桶不为空,则会删除失败并提示桶不为空。
### **参数说明**
此处仅列出删除桶独有的参数说明,公共参数说明请见[桶操作参数说明](#bucketParams)
| 参数名称 | 参数说明 | 默认值 | 是否必填 |
| :----: | :----: | :----: | :----: |
| operation_type | 'deletebucket' | 无 | 是 |
| clear_bucket | 删除桶时,是否清空桶内全部对象/碎片,不填时默认清空 | true | 否 |
### 清空桶内对象+删除桶:
假设您的OBS中存在名为'bucket-test'的桶
```yaml
- name: Delete Bucket on OBS
uses: huaweicloud/obs-helper@v1.4.0
id: delete_bucket_on_obs
with:
operation_type: deletebucket
bucket_name: bucket-test
```
执行成功后,桶'bucket-test'会被清空并删除。
完整样例: [.github/workflows/delete-bucket-default.yml](.github/workflows/delete-bucket-default.yml)
### 不清空桶内对象+删除桶
假设您的OBS中存在名为'bucket-test'的桶
```yaml
- name: Delete Bucket on OBS
uses: huaweicloud/obs-helper@v1.4.0
id: delete_bucket_not_clear
with:
operation_type: deletebucket
bucket_name: bucket-test
clear_bucket: false
```
执行后,如果桶'bucket-test'为空,桶会被删除;若不为空,则会执行失败,桶和桶内对象均不会被删除。
完整样例: [.github/workflows/delete-bucket-no-clear.yml](.github/workflows/delete-bucket-no-clear.yml)
点击跳转至Action:[HuaweiCloud Obs Helper](https://github.com/marketplace/actions/huaweicloud-obs-helper)