[python]阿里云oss储存对象的类

[python]阿里云oss储存对象笔记

import oss2	# pip install oss2

class my_alioss:
	# 基本请求信息
	def __init__(self, s_keyid, s_keysecret, s_ossurl, s_bucketname):
		# 参1: keyid		同参2,右上角头像 - accesskeys
		# 参2: keysecret
		# 参3: ossurl		控制台-oss对象存储-bucket列表-概览-[外网范围, 地域节点]
		# 参4: bucketname 	控制台-oss对象存储-bucket列表
		self.oj_auth = oss2.Auth(s_keyid, s_keysecret)
		self.oj_bucket =  oss2.Bucket(self.oj_auth, s_ossurl, s_bucketname)
		self.name = s_bucketname
	# 上传/下载/删除
	def download(self, s_alipath, s_localpath):
		# 参1: 要下载的oss盘路径,最左端无/符号
		# 参2: 要保存的本地路径,包含文件名
		# 示例: oj_myoss.download('22.txt', 'c:/22.txt')
		self.oj_bucket.get_object_to_file(s_alipath.replace('\\', '/').lstrip('/'), s_localpath.replace('\\', '/').strip('/'))
	def upload(self, s_alipath, s_localpath):
		# 参1: 要上传保存的oss盘路径,最左端无/符号
		# 参2: 要保存的本地路径,包含文件名
		# 示例: oj_myoss.upload('test/33.txt', 'C:/Users/cusong/Desktop/33.txt')
		self.oj_bucket.put_object_from_file(s_alipath.replace('\\', '/').lstrip('/'), s_localpath.replace('\\', '/').strip('/'))		

	# 生成限时分享url
	def retstr_fileurl(self, s_alipath, i_timeout = 60):
		# 参1:要分享的文件
		# 参2:链接有效时间
		return self.oj_bucket.sign_url('GET', s_alipath.replace('\\', '/').lstrip('/'),i_timeout)

	def remove(self, s_alipath):
		# 参1 要删除的阿里文件对象路径
		# 示例: oj_myoss.remove('33.txt')
		self.oj_bucket.delete_object(s_alipath.replace('\\', '/').lstrip('/'))

	# 移动
	def moveto(self, s_from_alipath, s_to_alipath):
		# 参1: 要复制的文件
		# 参2: 目标文件
		# 将同一网盘下的文件移动到另一个文件夹
		self.oj_bucket.copy_object(self.name, s_from_alipath.replace('\\', '/').lstrip('/'), s_to_alipath.replace('\\', '/').lstrip('/'))
		self.remove(s_from_alipath)


	# 查询方法
	def retbol_fileexist(self, s_alipath):
		#返回bool值:文件/文件夹是否存在
		return self.oj_bucket.object_exists(s_alipath.replace('\\', '/').lstrip('/'))

	def rettup_all(self):
		#返回oss中所有文件夹/文件 字符串到元组
		ls_filelongpath = []
		for obj in oss2.ObjectIterator(self.oj_bucket):
			ls_filelongpath.append(obj.key)
		return tuple(ls_filelongpath)

	def rettup_alldirs(self):
		# 返回oos中所有的文件夹
		ls_filelongpath = []
		for obj in oss2.ObjectIterator(self.oj_bucket):
			if obj.key.endswith('/'):
				ls_filelongpath.append(obj.key)
		return tuple(ls_filelongpath)

	def rettup_allfiles(self):
		# 返回oos中所有的文件
		ls_filelongpath = []
		for obj in oss2.ObjectIterator(self.oj_bucket):
			if not obj.key.endswith('/'):
				ls_filelongpath.append(obj.key)
		return tuple(ls_filelongpath)

	def rettup_rootdirs(self):
		#获取顶层所有文件夹元组
		s_files= []
		for obj in oss2.ObjectIterator(self.oj_bucket, delimiter = '/'):
			if obj.is_prefix():
				s_files.append(obj.key)
		return tuple(s_files)

	def rettup_rootfiles(self):
		#获取顶层所有文件元组
		s_files= []
		for obj in oss2.ObjectIterator(self.oj_bucket, delimiter = '/'):
			if not obj.is_prefix():
				s_files.append(obj.key)
		return tuple(s_files)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值