from qiniu import Auth, put_file # from qiniu import CdnManager import os access_key = "UGhUjpO0AhgA9QMPDaA_Swh78weAsA1LiGUSSmos" secret_key = "tXNpxVjQ22HwCVt7voON7FhiaWdaoHTnFlEgI7aD" bucket_name = "aidluxzz" bucket_url = "rvga5hogv.hn-bkt.clouddn.com" q = Auth(access_key, secret_key) # cdn_manager = CdnManager(q) # 构建鉴权对象 # 生成上传 Token,可以指定过期时间等参数 token = q.upload_token(bucket_name, None, 36000) def qiniu_upload(localpath): # localpath = './save' # 遍历本地文件夹,依次上传文件 for root, dirs, files in os.walk(localpath): for file in files: # 本地文件的绝对路径 localfile = os.path.join(root, file) # 上传到七牛云的文件名,使用相对路径,去掉本地文件夹路径前缀 key = os.path.relpath(localfile, localpath) # 调用 put_file 方法上传文件 ret, info = put_file(token, key, localfile) # 打印上传结果信息 print(info)
时间: 2024-04-28 12:21:57 浏览: 81
plugin_qiniu:Tale 博客系统七牛图片上传插件
这段代码实现了将本地文件夹中的文件上传到七牛云存储空间。具体过程如下:
1. 引入相关的依赖库,包括 qiniu 的 Auth 和 put_file 方法,以及 os 库。
2. 定义了 access_key、secret_key、bucket_name 和 bucket_url,这些信息用于鉴权和指定存储空间。
3. 创建了一个 Auth 对象 q,并生成上传 Token。
4. 定义了 qiniu_upload 函数,函数的参数是本地文件夹的路径 localpath。
5. 使用 os.walk 遍历本地文件夹,获取其中的文件列表。
6. 对于每个文件,获取本地文件的绝对路径 localfile,以及上传到七牛云存储空间中的文件名 key。
7. 调用 put_file 方法上传文件,上传成功后打印上传结果信息。
需要注意的是,上传的文件名是相对路径,去掉了本地文件夹路径前缀。如果您需要上传的文件名包含多层文件夹路径,请自行修改代码。另外,如果您上传的文件较大,可以考虑使用分片上传的方式,以提高上传速度和稳定性。
阅读全文