build(deps): bump the aws-sdk group across 1 directory with 7 updates
Bumps the aws-sdk group with 4 updates in the / directory: github.com/aws/aws-sdk-go-v2, github.com/aws/aws-sdk-go-v2/config, github.com/aws/aws-sdk-go-v2/feature/s3/manager and github.com/aws/smithy-go.
Updates
github.com/aws/aws-sdk-go-v2from 1.42.1 to 1.43.0Updates
github.com/aws/aws-sdk-go-v2/configfrom 1.32.27 to 1.32.31Updates
github.com/aws/aws-sdk-go-v2/credentialsfrom 1.19.26 to 1.19.30Updates
github.com/aws/aws-sdk-go-v2/feature/s3/managerfrom 1.22.30 to 1.22.35Updates
github.com/aws/aws-sdk-go-v2/service/s3from 1.104.2 to 1.106.0Updates
github.com/aws/aws-sdk-go-v2/service/stsfrom 1.43.5 to 1.45.0Updates
github.com/aws/smithy-gofrom 1.27.3 to 1.27.4
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2 dependency-version: 1.43.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-sdk
- dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-version: 1.32.31 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: aws-sdk
- dependency-name: github.com/aws/aws-sdk-go-v2/credentials dependency-version: 1.19.30 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: aws-sdk
- dependency-name: github.com/aws/aws-sdk-go-v2/feature/s3/manager dependency-version: 1.22.35 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: aws-sdk
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3 dependency-version: 1.106.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-sdk
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sts dependency-version: 1.45.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-sdk
- dependency-name: github.com/aws/smithy-go dependency-version: 1.27.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: aws-sdk …
Signed-off-by: dependabot[bot] support@github.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
Storage CLI
A unified command-line tool for interacting with multiple cloud storage providers through a single binary. The CLI supports five blob-storage providers (Azure Blob Storage, AWS S3, Google Cloud Storage, Alibaba Cloud OSS, and WebDAV), each with its own client implementation while sharing a common command interface.
Note: This CLI works with existing storage resources (buckets, containers, etc.) that are already created and configured in your cloud provider. The storage bucket/container name and credentials must be specified in the provider-specific configuration file.
Key points
Single binary with provider selection via
-sflag.Each provider has its own directory (azurebs/, s3/, gcs/, alioss/, dav/) containing client implementations and configurations.
All providers support the same core commands (put, get, delete, exists, list, copy, etc.).
Provider-specific configurations are passed via JSON config files.
Providers
Build
Build the unified storage CLI binary:
Or with version information:
Usage
The CLI uses a unified command structure across all providers:
Flags:
-s: Storage provider type (azurebs|s3|gcs|alioss|dav)-c: Path to provider-specific configuration file-v: Show version-log-file: Path to log file (optional, logs to stderr by default)-log-level: Logging level: debug, info, warn, error (default: warn)Common commands:
put <path/to/file> <remote-object>- Upload a local file to remote storageget <remote-object> <path/to/file>- Download a remote object to local filedelete <remote-object>- Delete a remote objectdelete-recursive [prefix]- Delete objects recursively. If prefix is omitted, deletes all objectsexists <remote-object>- Check if a remote object exists (exits with code 3 if not found)list [prefix]- List remote objects. If prefix is omitted, lists all objectscopy <source-object> <destination-object>- Copy object within the same storagesign <object> <action> <duration_as_second>- Generate signed URL (action: get|put, duration: e.g., 60s)properties <remote-object>- Display properties/metadata of a remote objectensure-storage-exists- Ensure the storage container/bucket exists, if not create the storage(bucket,container etc)Examples:
Contributing
Follow these steps to make a contribution to the project:
mainbranch (pull requests must be made against this branch)mainas the target branchDependency Updates
This project uses Dependabot to keep dependencies up to date. Dependencies are grouped (e.g., AWS SDK, Azure SDK, Google Cloud, testing tools) to reduce PR noise.
Integration tests on Dependabot PRs: Integration tests are skipped for Dependabot PRs since they don’t have access to secrets. If needed, maintainers can manually trigger the integration tests via
workflow_dispatchbefore merging. Integration tests will also run automatically after merging to main.Releases
Manual Release
Releases must be triggered manually by an approver. This can be done either via
GitHub Actions(workflow dispatch) or through theGitHub Releasespage using the Draft a new release option. The Release Manual workflow is responsible for creating and completing the release.Option 1: Release via Workflow Dispatch
Go to Actions and select the Release Manual workflow.
Click Run workflow.
Enter the next incremented version number with the v prefix (for example, v1.2.3).
The workflow will create the release and upload the build artifacts once completed.
Option 2: Release via Draft Release
Go to Releases and click Draft a new release.
Create a new tag using the next incremented version with the v prefix.
Fill in the release title and description.
Click Publish release.
The release will appear immediately on the Releases page. This action will also trigger the Release Manual workflow, which will build the artifacts and upload them to the published release once the workflow finishes.
Notes
These commit IDs represent the last migration checkpoint from each provider’s original repository, marking the final commit that was copied during the consolidation process.