Skip to main content

华策 AIGC OSS Proxy Client - 统一 RustFS / 阿里云 OSS / 七牛云上传,支持内网/公网默认上传网络

Project description

AIGC OSS Proxy Python SDK

Python Version

华策 AIGC 插件对象存储上传 SDK,支持内网 RustFS 与公网(阿里云 OSS / 七牛云)。

Python 版本>= 3.10

安装

# 全量(RustFS + 阿里云 + 七牛)
pip install huace-aigc-oss-proxy-client[all]

# 按需安装
pip install huace-aigc-oss-proxy-client[aliyun]   # 仅阿里云
pip install huace-aigc-oss-proxy-client[rustfs]   # 仅 RustFS
pip install huace-aigc-oss-proxy-client[qiniu]    # 仅七牛

快速开始

1. 配置环境变量

复制 env.example.env,填入 AK/SK、Bucket 等。变量名统一前缀 HUACE_AIGC_

cp env.example .env

2. 上传文件

from huace_aigc_oss import OssProxy

proxy = OssProxy.from_env()

# 上传到内网
result = proxy.upload("/tmp/output.wav", "output.wav", route="local")
print(result.url)   # 内网访问地址
print(result.key)   # 对象 key

# 上传到公网
result = proxy.upload("/tmp/output.wav", "output.wav", route="public")
print(result.url)   # 公网访问地址

参数说明

参数 说明
第 1 个参数 本地文件路径
download_name 下载时显示的文件名(必填)
route local(内网)或 public(公网);可省略,见下方环境变量

省略 route 时,使用环境变量 HUACE_AIGC_OSS_DEFAULT_UPLOAD_NETWORK 的值。

内网转公网

将内网 RustFS 链接转为阿里云公网链接;若传入的已是公网链接,则原样返回。

from huace_aigc_oss import OssProxy

proxy = OssProxy.from_env()

public_url = proxy.local_to_public_url(
    "http://oss.aigc-transdubbing.huacemedia.com:9000/huace-shortmovie/tmp/abc.mp4"
)
print(public_url)

前提HUACE_AIGC_OSS_ALIYUN_ENABLED=true,且阿里云凭证已配置。

环境变量

完整模板见 env.example。按用途分组如下。

上传网络

变量 必填 默认值 说明
HUACE_AIGC_OSS_DEFAULT_UPLOAD_NETWORK 与代码 route 至少填一处 local(内网)或 public(公网)

route=public 时,公网后端由以下变量决定(无需单独指定 provider):

变量 默认值 说明
HUACE_AIGC_OSS_ALIYUN_ENABLED true 启用阿里云
HUACE_AIGC_OSS_QINIU_ENABLED false 启用七牛

二者均启用时优先阿里云;均未启用时公网上传报错。

配置示例

# 内网 Worker
HUACE_AIGC_OSS_DEFAULT_UPLOAD_NETWORK=local

# 公网(阿里云)
HUACE_AIGC_OSS_DEFAULT_UPLOAD_NETWORK=public
HUACE_AIGC_OSS_ALIYUN_ENABLED=true
HUACE_AIGC_OSS_QINIU_ENABLED=false

# 公网(七牛)
HUACE_AIGC_OSS_DEFAULT_UPLOAD_NETWORK=public
HUACE_AIGC_OSS_ALIYUN_ENABLED=false
HUACE_AIGC_OSS_QINIU_ENABLED=true

RustFS(内网)

变量 必填 默认值
HUACE_AIGC_OSS_RUSTFS_ACCESS_KEY
HUACE_AIGC_OSS_RUSTFS_SECRET_KEY
HUACE_AIGC_OSS_RUSTFS_BUCKET
HUACE_AIGC_OSS_RUSTFS_KEY_PREFIX tmp

阿里云 OSS(公网)

变量 必填 默认值
HUACE_AIGC_OSS_ALIYUN_ENABLED true
HUACE_AIGC_OSS_ALIYUN_ACCESS_KEY_ID 启用时必填
HUACE_AIGC_OSS_ALIYUN_ACCESS_KEY_SECRET 启用时必填
HUACE_AIGC_OSS_ALIYUN_BUCKET 启用时必填
HUACE_AIGC_OSS_ALIYUN_KEY_PREFIX tmp

七牛云(公网,可选)

变量 必填 默认值
HUACE_AIGC_OSS_QINIU_ENABLED false
HUACE_AIGC_OSS_QINIU_ACCESS_KEY 启用时必填
HUACE_AIGC_OSS_QINIU_SECRET_KEY 启用时必填
HUACE_AIGC_OSS_QINIU_BUCKET 启用时必填
HUACE_AIGC_OSS_QINIU_DOMAIN 启用时必填
HUACE_AIGC_OSS_QINIU_KEY_PREFIX tmp

Docker 部署

容器内需能解析内网 OSS 域名,添加 extra_hosts

extra_hosts:
  - "oss.aigc-transdubbing.huacemedia.com:192.168.1.18"

示例项目

更多命令行示例见 example/ 目录:

cd example
cp .env.example .env   # 填入凭证
pip install -r requirements.txt
python upload_file.py "assert/2.mp4" "2.mp4" --route public

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

huace_aigc_oss_proxy_client-0.1.7.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

huace_aigc_oss_proxy_client-0.1.7-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file huace_aigc_oss_proxy_client-0.1.7.tar.gz.

File metadata

File hashes

Hashes for huace_aigc_oss_proxy_client-0.1.7.tar.gz
Algorithm Hash digest
SHA256 6c6828241eb75fc46fe52885487e3ba49d28a1c30ba5ad663c8d947db36e3f81
MD5 5863c6adb57d113b8fd649d8b5183937
BLAKE2b-256 cf9e6c43cc5acb32b42ecc0fa833dafa42c02b1312a2210c1fe6123b6e9368ce

See more details on using hashes here.

File details

Details for the file huace_aigc_oss_proxy_client-0.1.7-py3-none-any.whl.

File metadata

File hashes

Hashes for huace_aigc_oss_proxy_client-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 2f9325fa15f2a1c8465a9a440b82855278532f0b634844a7d80ec50fabac1693
MD5 0a84b6870ada04c7a3adef44db9cd686
BLAKE2b-256 4163c260005103b94d9dc25fbdf6384d595b7925e369c980c317eb08f25a1259

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page