因业务需求需要做一个随机生成文件夹以及文件夹下随机生成文件上传到阿里云oss并且导出文件地址的需求。
自行需求修改:
文件夹长度
文件名长度
文件类型
import json
import oss2
import uuid
def mkdir(path):
# 引入模块
import os
# 去除首位空格
path = path.strip()
# 去除尾部 \ 符号
path = path.rstrip("\\")
# 判断路径是否存在
# 存在 True
# 不存在 False
isExists = os.path.exists(path)
# 判断结果
if not isExists:
# 如果不存在则创建目录
# 创建目录操作函数
os.makedirs(path)
print
path + ' 创建成功'
return True
else:
# 如果目录存在则不创建,并提示目录已存在
print
path + ' 目录已存在'
return False
# 创建一个txt文件,文件名为mytxtfile,并向文件写入msg
def text_create(name,mkpath):
desktop_path = mkpath # 新创建的txt文件的存放路径
full_path = desktop_path + name + '.html' # 也可以创建一个.doc的word文档
file = open(full_path, 'w')
def file_text(file): #上传到oss
# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth('自己阿里云获取', '自己阿里云获取')
# Endpoint以深圳为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'file_url')
# 必须以二进制的方式打开文件,因为需要知道文件包含的字节数。
bucket.put_object(file+"/"+filename[0:12]+'.html','file_url')
url_list = []
for page_box in range(1,5):#文件夹个数
file = uuid.uuid4().hex #随机文件夹名称
# 定义要随机创建的目录
mkpath = "E:\\pythondata\\datawenjian\\"+file[0:4]+"\\"
# 调用函数
mkdir(mkpath)
for page in range(1, 10): #循环次数 创建文件个数
filename = uuid.uuid4().hex # 随机生成文件名
text_create(filename[0:12],mkpath) # 文件名(限制长度)
# 调用函数创建一个名为mytxtfile的.html文件
file_text(file[0:4])
url = "http://file_url.oss-cn-shenzhen.aliyuncs.com/"+file[0:4]+"/"+filename[0:12]+".html"
#http://file_url.oss-cn-shenzhen.aliyuncs.com/p/284daa793814.html
url_list.append(url)
print('循环第'+str(page)+'次')
with open('url_list-2021-02-12.json', 'a', encoding='utf-8') as file:
file.write(json.dumps(url_list, indent=2, ensure_ascii=False))
print("上传完毕")