|
|
|
@ -1,6 +1,8 @@ |
|
|
|
|
import datetime |
|
|
|
|
import hashlib |
|
|
|
|
import json |
|
|
|
|
import os |
|
|
|
|
import time |
|
|
|
|
|
|
|
|
|
import aliyunsdkcore |
|
|
|
|
import oss2 as oss2 |
|
|
|
@ -19,6 +21,8 @@ class UploadPhoto(AcsClient): |
|
|
|
|
aliyunsdkcore.request.set_default_protocol_type("https") |
|
|
|
|
self.domain = 'cloudphoto.cn-shanghai.aliyuncs.com' |
|
|
|
|
self.version = '2017-07-11' |
|
|
|
|
self.LibraryId = None |
|
|
|
|
self.StoreName = None |
|
|
|
|
|
|
|
|
|
def get_md5_01(self, file_path): |
|
|
|
|
md5 = None |
|
|
|
@ -54,64 +58,94 @@ class UploadPhoto(AcsClient): |
|
|
|
|
print('{index}:{name}'.format(index=index + 1, name=option[key])) |
|
|
|
|
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__': |
|
|
|
|
client = UploadPhoto() |
|
|
|
|
|
|
|
|
|
request = client.createAction('ListPhotoStores') |
|
|
|
|
response = client.do_action_with_exception(request) |
|
|
|
|
print('PhotoStores:') |
|
|
|
|
photoStores = response['PhotoStores'] |
|
|
|
|
StoreName = client.showOption(photoStores, 'Name', 'StoreName') |
|
|
|
|
|
|
|
|
|
request = client.createAction('GetPhotoStore') |
|
|
|
|
request.add_query_param('StoreName', StoreName) |
|
|
|
|
client.getSL() |
|
|
|
|
request = client.createAction('ListPhotos') |
|
|
|
|
request.add_query_param('StoreName', client.StoreName) |
|
|
|
|
request.add_query_param('LibraryId', client.LibraryId) |
|
|
|
|
request.add_query_param('State', 'all') |
|
|
|
|
response = client.do_action_with_exception(request) |
|
|
|
|
print(response) |
|
|
|
|
|
|
|
|
|
request = client.createAction('FetchLibraries') |
|
|
|
|
request.add_query_param('StoreName', StoreName) |
|
|
|
|
response = client.do_action_with_exception(request) |
|
|
|
|
Libraries = response['Libraries'] |
|
|
|
|
LibraryId = client.showOption(Libraries, 'LibraryId', 'LibraryId') |
|
|
|
|
IdStr = client.showOption(response['Photos'], 'IdStr', '照片Id') |
|
|
|
|
|
|
|
|
|
request = client.createAction('GetLibrary') |
|
|
|
|
request.add_body_params('StoreName', StoreName) |
|
|
|
|
request.add_body_params('LibraryId', LibraryId) |
|
|
|
|
request = client.createAction('EditPhotos') |
|
|
|
|
request.add_query_param('PhotoId.1', IdStr) |
|
|
|
|
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) |
|
|
|
|
print(response) |
|
|
|
|
|
|
|
|
|
request = client.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', client.get_md5_01(filePath)) |
|
|
|
|
request.add_query_param('StoreName', StoreName) |
|
|
|
|
|
|
|
|
|
# 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) |
|
|
|
|
request = client.createAction('GetPublicAccessUrls') |
|
|
|
|
request.add_query_param('DomainType', 'OSS') |
|
|
|
|
request.add_query_param('PhotoId.1', IdStr) |
|
|
|
|
request.add_query_param('StoreName', client.StoreName) |
|
|
|
|
request.add_query_param('ZoomType', 'style/1') |
|
|
|
|
request.add_query_param('LibraryId', client.LibraryId) |
|
|
|
|
response = client.do_action_with_exception(request) |
|
|
|
|
print(response) |