| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | #!/usr/bin/env python3  # -*- coding: utf-8 -*-  """@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.@AUTHOR: ASJRD018@NAME: AnsjerFormal@software: PyCharm@DATE: 2018/11/8 9:23@Version: python3.6@MODIFY DECORD:ansjer dev@file: oss_sts.py@Contact: chanjunkai@163.com"""# -*- coding: utf-8 -*-'''生成sts上传授权'''from aliyunsdkcore import clientfrom aliyunsdksts.request.v20150401 import AssumeRoleRequestimport jsonimport oss2import base64'''http://test.dvema.com/cloudVod/getSts?uidToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjaGFubmVsIjoiNCIsInVpZCI6IkZUU0xMOEhNNDM3WjM4V1UxMTFBIn0.wkrwYvIYf5qEukOSTxALSAgSqop-gNBdEvSwScOgYB8'''# tokenss ={"arn": "acs:ram::1901342792446414:role/stsoss/P2WNGJRD2EHA5EU9111A", "expire": "3600", "Expiration": "2019-02-25T07:03:40Z", "endpoint": "oss-cn-shenzhen.aliyuncs.com", "ip": "120.237.157.181", "storage": "P2WNGJRD2EHA5EU9111A/vod1/", "AccessKeySecret": "ErbGnFyPWPcfNBPRkcpZBJNBVpsX73q2u5vgJYownBQd", "SecurityToken": "CAIS9AJ1q6Ft5B2yfSjIr4vWBsLMjLBI0q2haFD/pTUgb8RvqL3pqDz2IHFIf3NhAe0bv/kzm2lX7/YYlr1LEaBjam7+QZFdzr0K3D7wOtOYkpRIRwn3ctj3d1KIAjvXgeV+CoeQFaELE5XAQlTAkTAJkNmeXD6+XlujHISUgJp8FLo+VRW5ajw0TbUzIRB5+vcHKVzbN/umLnyShXHLXmZlvgdghER166m03re4iHzkgUb91/UeqqnoP5GgdLMMBppkVMqv1+EELsiH2SVLuR9R7/U03u4W8jHZud3ERGEL3DOpEdD4qPBPBVJUW/ljQvdt6+b7maQ/+JaX9eXW0z9BMftYSD+lIImr25n/H/6zPdsYbcSCWROUiIjJbMKq9Vp5PjRCZFpoA4NwciYrVUZzG2uGdvH7oQzwD139G/Tf4sYfyoFoyljkx92OKmWUTq+RuSRiYc5gNBl5b0NLjDG9LfZZKlwWaT18G62SVp5jypvDLGYoZWYagAGOO+MMAjzgPaDMySC/exBy3d1Lp0iCGLeY6HYgMhel1YjuC2+vaPxvIaTgp4n9+QmQi+i1wtRhCVk8bwY0YCgNO5nZds4E0J5g7xTfnMfm30FaRs5s3rJohwEwp4cnsxgqsDGwwvqpOAefRd/hscpw3frgyPEVG6b6XRY4na+xpA==", "AccessKeyId": "STS.NHcMxxaoieoJjvNA5ucKCGxBJ", "bucket_name": "cnvod1", "code": 0}tokenss = {"arn": "acs:ram::1901342792446414:role/stsoss/P2WNGJRD2EHA5EU9111A", "expire": "3600", "endpoint": "oss-cn-shenzhen.aliyuncs.com", "AccessKeySecret": "ErbGnFyPWPcfNBPRkcpZBJNBVpsX73q2u5vgJYownBQd", "ip": "120.237.157.181", "storage": "P2WNGJRD2EHA5EU9111A/vod1/", "Expiration": "2019-02-25T07:03:40Z", "SecurityToken": "CAIS9AJ1q6Ft5B2yfSjIr4vWBsLMjLBI0q2haFD/pTUgb8RvqL3pqDz2IHFIf3NhAe0bv/kzm2lX7/YYlr1LEaBjam7+QZFdzr0K3D7wOtOYkpRIRwn3ctj3d1KIAjvXgeV+CoeQFaELE5XAQlTAkTAJkNmeXD6+XlujHISUgJp8FLo+VRW5ajw0TbUzIRB5+vcHKVzbN/umLnyShXHLXmZlvgdghER166m03re4iHzkgUb91/UeqqnoP5GgdLMMBppkVMqv1+EELsiH2SVLuR9R7/U03u4W8jHZud3ERGEL3DOpEdD4qPBPBVJUW/ljQvdt6+b7maQ/+JaX9eXW0z9BMftYSD+lIImr25n/H/6zPdsYbcSCWROUiIjJbMKq9Vp5PjRCZFpoA4NwciYrVUZzG2uGdvH7oQzwD139G/Tf4sYfyoFoyljkx92OKmWUTq+RuSRiYc5gNBl5b0NLjDG9LfZZKlwWaT18G62SVp5jypvDLGYoZWYagAGOO+MMAjzgPaDMySC/exBy3d1Lp0iCGLeY6HYgMhel1YjuC2+vaPxvIaTgp4n9+QmQi+i1wtRhCVk8bwY0YCgNO5nZds4E0J5g7xTfnMfm30FaRs5s3rJohwEwp4cnsxgqsDGwwvqpOAefRd/hscpw3frgyPEVG6b6XRY4na+xpA==", "AccessKeyId": "STS.NHcMxxaoieoJjvNA5ucKCGxBJ", "bucket_name": "cnvod1", "code": 0}# 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。# 使用临时token中的认证信息初始化StsAuth实例。auth = oss2.StsAuth(tokenss['AccessKeyId'],                    tokenss['AccessKeySecret'],                    tokenss['SecurityToken'])print(auth)############### callbackcallback_dict = {}callback_dict['callbackUrl'] = 'http://www.dvema.com:3000/?token=token&filename=shijianchuo&size=1234&len=1234'# 设置回调请求消息头中Host的值, 如oss-cn-hangzhou.aliyuncs.com。callback_dict['callbackHost'] = 'oss-cn-shenzhen.aliyuncs.com'# 设置发起回调时请求body的值。callback_dict['callbackBody'] = 'filename=${object}&size=${size}&mimeType=${mimeType}'# 设置发起回调请求的Content-Type。callback_dict['callbackBodyType'] = 'application/x-www-form-urlencoded'# 回调参数是Json格式,并且需要Base64编码。callback_param = json.dumps(callback_dict).strip()base64_callback_body = oss2.utils.b64encode_as_string(callback_param)# 回调参数编码后放在Header中发送给OSS。headers = {'x-oss-callback': base64_callback_body}################# exit()# 使用StsAuth实例初始化存储空间。endpoint = tokenss['endpoint']bucket = oss2.Bucket(auth, tokenss['endpoint'], tokenss['bucket_name'])# # 上传一个字符串。# bucket.delete_object('a-3.txt')# exit()patht = tokenss['storage'] + 'asfsdafsdafdsa'print(patht)print(endpoint)print(bucket.put_object(patht, b'ddd'))# bucket.put_object('FTSLL8HM437Z38WU111A/vod4/1234.txt', b'12345646',headers)exit()res = bucket.get_object('ddd.txt')print(res.read())
 |