在为deepin打包的过程中,使用到了七牛的云存储,大概的流程如下
- 打包
- 上传七牛云
- 发送邮件给我
- 我将打好的包的七牛cdn地址发送给deepin的管理员
- 管理员安排测试并上架
在少数情况下,我会为同一个包打多次,但是因为包名没有变,所以cdn下载到的还是旧的,为了避免这种情况,我升级了一下脚本,改为先删除再上传。具体代码如下
def delete_file(myauth: Auth, bucket_name: str, key: str):
# 初始化BucketManager
bucket = BucketManager(myauth)
# 删除bucket_name 中的文件 key
ret, info = bucket.delete(bucket_name, key)
print(info)
print(ret)
def upload_file(myauth: Auth, bucket_name: str, key: str):
# 生成上传 Token,可以指定过期时间等
token = myauth.upload_token(bucket_name, key, 600)
# 要上传文件的本地路径
localfile = './' + key
ret, info = put_file(token, key, localfile, version='v2')
print(info)
assert ret['key'] == key
assert ret['hash'] == etag(localfile)
def delete_then_upload(myauth: Auth, bucket_name: str, key: str):
# 因为可能文件之前存在过,所以提前删除一下。
delete_file(myauth, bucket_name, key)
upload_file(myauth, bucket_name, key)
delete_then_upload(myauth, bucket_name, package_name)