You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.9 KiB

1 year ago
import os
import oss2
import requests
# 填写RAM用户的访问密钥AccessKey ID和AccessKey Secret
accessKeyId = 'LTAI5tE4tgpGcKWhbZg6C4bh'
accessKeySecret = 'oizcTOZ8izbGUouboC00RcmGE8vBQ1'
# endpoint填写Bucket所在地域对应的Endpoint。以华东1杭州为例Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
endpoint = 'http://oss-cn-beijing.aliyuncs.com'
# 填写Bucket名称。
bucketName = 'hzkc'
# 使用代码嵌入的RAM用户的访问密钥配置访问凭证。
auth = oss2.Auth(accessKeyId, accessKeySecret)
bucket = oss2.Bucket(auth, endpoint, bucketName)
# 遍历 Images/Upload前缀下所有文件
# 指定前缀
prefix = 'Images/Upload/'
# 获取图片宽高
def down_small_img(v_url, directory):
v_url = v_url.replace("https://hzkc.oss-cn-beijing.aliyuncs.com", 'http://image.hzkjai.com')
t_url = v_url + '?x-oss-process=image/info'
# 发送GET请求
response = requests.get(t_url)
# 解析JSON数据
data = response.json()
width = data['ImageWidth']['value']
height = data['ImageHeight']['value']
action = 'w'
if width < height:
action = 'h'
if int(width) > 1024 or int(height) > 1024:
t_url = v_url + '?x-oss-process=image/resize,' + action + '_1024,limit_0'
else:
t_url = v_url
# 从URL中提取文件名
filename = v_url.split('/')[-1]
# windows版本的wget
os.system('wget ' + t_url + ' -O ' + directory + '/' + filename)
if __name__ == '__main__':
Directory = r'D:\backup\Temp'
# 使用ObjectIterator查找具有指定前缀的对象
for obj in oss2.ObjectIterator(bucket, prefix=prefix):
oss_file_path = obj.key
if '.' not in oss_file_path:
continue
img_url = "http://hzkc.oss-cn-beijing.aliyuncs.com/" + obj.key
down_small_img(img_url, Directory)