阿里云智能云相册

master
10295 7 years ago
parent 8a3c9033d1
commit 6dcb3ee1f2
  1. 136
      PixivSearch/aliyun/photo/AliyunPhoto.py
  2. 44
      PixivSearch/baidu/downLoadBduImg.py

@ -1,6 +1,8 @@
import datetime
import hashlib import hashlib
import json import json
import os import os
import time
import aliyunsdkcore import aliyunsdkcore
import oss2 as oss2 import oss2 as oss2
@ -19,6 +21,8 @@ class UploadPhoto(AcsClient):
aliyunsdkcore.request.set_default_protocol_type("https") aliyunsdkcore.request.set_default_protocol_type("https")
self.domain = 'cloudphoto.cn-shanghai.aliyuncs.com' self.domain = 'cloudphoto.cn-shanghai.aliyuncs.com'
self.version = '2017-07-11' self.version = '2017-07-11'
self.LibraryId = None
self.StoreName = None
def get_md5_01(self, file_path): def get_md5_01(self, file_path):
md5 = None md5 = None
@ -54,64 +58,94 @@ class UploadPhoto(AcsClient):
print('{index}:{name}'.format(index=index + 1, name=option[key])) print('{index}:{name}'.format(index=index + 1, name=option[key]))
return choose[(int)(input('输入{desc}\n'.format(desc=desc))) - 1] return choose[(int)(input('输入{desc}\n'.format(desc=desc))) - 1]
def getSL(self):
request = self.createAction('ListPhotoStores')
response = self.do_action_with_exception(request)
print('PhotoStores:')
photoStores = response['PhotoStores']
self.StoreName = self.showOption(photoStores, 'Name', 'StoreName')
# request = self.createAction('GetPhotoStore')
# request.add_query_param('StoreName', StoreName)
# response = self.do_action_with_exception(request)
# print(response)
request = self.createAction('FetchLibraries')
request.add_query_param('StoreName', self.StoreName)
response = self.do_action_with_exception(request)
Libraries = response['Libraries']
self.LibraryId = self.showOption(Libraries, 'LibraryId', 'LibraryId')
# request = self.createAction('GetLibrary')
# request.add_body_params('StoreName', StoreName)
# request.add_body_params('LibraryId', LibraryId)
# response = self.do_action_with_exception(request)
# print(response)
def uploadPhoto(self):
if self.StoreName is None or self.LibraryId is None:
return '未选择StoreName、LibraryId'
request = self.createAction('CreateTransaction')
filePath = input('输入上传文件路径')
fileName = filePath.split('/')[-1]
request.add_query_param('Size', os.path.getsize(filePath))
request.add_query_param('Ext', fileName[-fileName[::-1].index('.'):])
request.add_query_param('Md5', self.get_md5_01(filePath))
request.add_query_param('StoreName', self.StoreName)
request.add_query_param('LibraryId', self.LibraryId)
response = self.do_action_with_exception(request)
print(response)
Upload = response['Transaction']['Upload']
FileId = Upload['FileId']
SessionId = Upload['SessionId']
Bucket = Upload['Bucket']
OssEndpoint = Upload['OssEndpoint']
ObjectKey = Upload['ObjectKey']
auth = oss2.Auth(self.get_access_key(), self.get_access_secret())
bucket = oss2.Bucket(auth, OssEndpoint, Bucket)
with open(filePath, 'rb') as fileobj:
result = bucket.put_object(ObjectKey, fileobj)
print('文件上传状态{status}'.format(status=result.status))
request = self.createAction('CreatePhoto')
request.add_query_param('FileId', FileId)
request.add_query_param('PhotoTitle', fileName)
request.add_query_param('SessionId', SessionId)
request.add_query_param('StoreName', self.StoreName)
request.add_query_param('UploadType', 'manual')
request.add_query_param('LibraryId', self.LibraryId)
response = self.do_action_with_exception(request)
print(response)
if __name__ == '__main__': if __name__ == '__main__':
client = UploadPhoto() client = UploadPhoto()
client.getSL()
request = client.createAction('ListPhotoStores') request = client.createAction('ListPhotos')
response = client.do_action_with_exception(request) request.add_query_param('StoreName', client.StoreName)
print('PhotoStores:') request.add_query_param('LibraryId', client.LibraryId)
photoStores = response['PhotoStores'] request.add_query_param('State', 'all')
StoreName = client.showOption(photoStores, 'Name', 'StoreName')
request = client.createAction('GetPhotoStore')
request.add_query_param('StoreName', StoreName)
response = client.do_action_with_exception(request) response = client.do_action_with_exception(request)
print(response) print(response)
request = client.createAction('FetchLibraries') IdStr = client.showOption(response['Photos'], 'IdStr', '照片Id')
request.add_query_param('StoreName', StoreName)
response = client.do_action_with_exception(request)
Libraries = response['Libraries']
LibraryId = client.showOption(Libraries, 'LibraryId', 'LibraryId')
request = client.createAction('GetLibrary') request = client.createAction('EditPhotos')
request.add_body_params('StoreName', StoreName) request.add_query_param('PhotoId.1', IdStr)
request.add_body_params('LibraryId', LibraryId) request.add_query_param('StoreName', client.StoreName)
request.add_query_param('LibraryId', client.LibraryId)
request.add_query_param('ShareExpireTime', int(round(time.time() * 1000)) + 60 * 60)
response = client.do_action_with_exception(request) response = client.do_action_with_exception(request)
print(response) print(response)
request = client.createAction('CreateTransaction') request = client.createAction('GetPublicAccessUrls')
filePath = input('输入上传文件路径') request.add_query_param('DomainType', 'OSS')
fileName = filePath.split('/')[-1] request.add_query_param('PhotoId.1', IdStr)
request.add_query_param('Size', os.path.getsize(filePath)) request.add_query_param('StoreName', client.StoreName)
request.add_query_param('Ext', fileName[-fileName[::-1].index('.'):]) request.add_query_param('ZoomType', 'style/1')
request.add_query_param('Md5', client.get_md5_01(filePath)) request.add_query_param('LibraryId', client.LibraryId)
request.add_query_param('StoreName', StoreName) response = client.do_action_with_exception(request)
print(response)
# request.add_query_param('LibraryId', liberaryId)
# response = json.loads(client.do_action_with_exception(request))
# print(response)
#
# Upload=response['Transaction']['Upload']
# FileId = Upload['FileId']
# SessionId = Upload['SessionId']
# Bucket=Upload['Bucket']
# OssEndpoint=Upload['OssEndpoint']
# ObjectKey=Upload['ObjectKey']
#
# auth = oss2.Auth(client.get_access_key(), client.get_access_secret())
# bucket = oss2.Bucket(auth, OssEndpoint,Bucket)
# with open(filePath, 'rb') as fileobj:
# result=bucket.put_object(ObjectKey,fileobj)
# print('文件上传状态{status}'.format(status=result.status))
#
# request = client.createAction('CreatePhoto')
# request.add_query_param('FileId', FileId)
# request.add_query_param('PhotoTitle', fileName)
# request.add_query_param('SessionId', SessionId)
# request.add_query_param('StoreName', StoreName)
# request.add_query_param('UploadType', 'manual')
# request.add_query_param('LibraryId', liberaryId)
# response = json.loads(client.do_action_with_exception(request))
# print(response)

@ -91,22 +91,28 @@ def downImage(params):
if __name__ == '__main__': if __name__ == '__main__':
str = '' # str = ''
while True: # while True:
str = input('输入要下载图片的关键字,输入 exit 退出程序\n') # str = input('输入要下载图片的关键字,输入 exit 退出程序\n')
if not str == 'exit': # if not str == 'exit':
while True: # while True:
savePath = input('输入图片存放目录:例如 E:/图片,注意目录之间使用正斜杠隔开"/"\n') # savePath = input('输入图片存放目录:例如 E:/图片,注意目录之间使用正斜杠隔开"/"\n')
if re.fullmatch(r"[a-zA-z]:(/[\u4e00-\u9fa5_a-zA-Z0-9]+)+", savePath) is None: # if re.fullmatch(r"[a-zA-z]:(/[\u4e00-\u9fa5_a-zA-Z0-9]+)+", savePath) is None:
print(r'图片目录{savePath}不合法请重新输入'.format(savePath=savePath)) # print(r'图片目录{savePath}不合法请重新输入'.format(savePath=savePath))
else: # else:
break # break
getBaiduImage(str) # getBaiduImage(str)
print(r'使用{threadNum}线程成功下载{count}张图片到目录{path}下,耗时:{second}'.format(threadNum=threadNum, # print(r'使用{threadNum}线程成功下载{count}张图片到目录{path}下,耗时:{second}'.format(threadNum=threadNum,
count=len(os.listdir(savePath)), # count=len(os.listdir(savePath)),
path=savePath, # path=savePath,
second=datetime.now() - startTime)) # second=datetime.now() - startTime))
flag = False # flag = False
else: # else:
print('exit') # print('exit')
break # break
req = requests.post('https://gifmaker.develophelper.com/gif/make', {'tplid': 1,
'content': '好啊##$@?$?@$##就算你是一流工程师##$@?$?@$##就算你出报告再完美##$@?$?@$##我叫你改报告你就要改##$@?$?@$##毕竟我是客户##$@?$?@$##客户了不起啊##$@?$?@$##sorry 客户真的了不起##$@?$?@$##以后叫他天天改报告##$@?$?@$##天天改 天天改'})
if req.status_code==200:
response = json.loads(req.content.decode())
if 'd' in response:
print(response['d'])

Loading…
Cancel
Save