- 背景:因为要换一个阿里云账号,所以这些文件得下下载下来,转移到那个账号的oss里面去。
- 先替换掉accesskey_id信息等等
endpoint = "http://oss-cn-beijing.aliyuncs.com"
accesskey_id = "xx"
accesskey_secret = "xx"
bucket_name = "rw-xxx-xxx"
建议直接使用 pip install oss2 安装
'''
oss 操作
'''
import oss2
import os
endpoint = "http://oss-cn-beijing.aliyuncs.com";
accesskey_id = "xx";
accesskey_secret = "xx";
bucket_name = "rw-xxx-xxx";
download_local_save_prefix = "C:/Users/Administrator/Desktop/download/";
'''
列举prefix全部文件
'''
def prefix_all_list(bucket,prefix):
print("开始列举"+prefix+"全部文件");
oss_file_size = 0;
for obj in oss2.ObjectIterator(bucket, prefix ='%s/'%prefix):
oss_file_size = oss_file_size + 1;
download_to_local(bucket, obj.key, obj.key);
print(prefix +" file size " + str(oss_file_size));
'''
列举全部的根目录文件夹、文件
'''
def root_directory_list(bucket):
for obj in oss2.ObjectIterator(bucket, delimiter='/'):
if obj.is_prefix():
print('directory: ' + obj.key);
prefix_all_list(bucket,str(obj.key).strip("/"));
else:
print('file: ' + obj.key);
download_to_local(bucket, str(obj.key) , str(obj.key));
'''
下载文件到本地
'''
def download_to_local(bucket,object_name,local_file):
url = download_local_save_prefix + local_file;
file_name = url[url.rindex("/")+1:]
file_path_prefix = url.replace(file_name, "")
if False == os.path.exists(file_path_prefix):
os.makedirs(file_path_prefix);
print("directory don't not makedirs "+ file_path_prefix);
bucket.get_object_to_file(object_name, download_local_save_prefix+local_file);
if __name__ == '__main__':
print("start \n");
auth = oss2.Auth(accesskey_id,accesskey_secret)
bucket = oss2.Bucket(auth,endpoint , bucket_name);
root_directory_list(bucket);
print("end \n");
- 调用root_directory_list方法能列举出根目录的所有文件夹和文件,如果是文件直接下载,如果是文件夹再调用prefix_all_list方法列举这个文件夹所有文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现