1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #!/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 client
- from aliyunsdksts.request.v20150401 import AssumeRoleRequest
- import json
- import oss2
- import base64
- tokenss = {"bucket_name": "cloudvod1", "arn": "acs:ram::1901342792446414:role/stsoss/5ZBU8UD6RHMZJ5JW111A", "endpoint": "oss-cn-shenzhen.aliyuncs.com", "AccessKeyId": "STS.NHCAdgRJxXRDvaDL4VAcYjA7c", "ip": "120.237.157.184", "AccessKeySecret": "ESy53e6b15AnH8XDujGjpxVx5TUXgH8zNhrXdsY3aENL", "storage": "5ZBU8UD6RHMZJ5JW111A/vod2/", "code": 0, "SecurityToken": "CAIS9wJ1q6Ft5B2yfSjIr4v2Ct7Tv5VZ75CvdEf1qDQDTex1hYScgTz2IHFIf3NhAe0bv/kzm2lX7/YYlr0uebV4FXHoM/FQy6Z1rCGeOtOYkpQXEQqzGdn3d1KIAjvXgeV9CoeQFaF0E5XAQlTAkTAJkNmeXD6+XlujHISUgJp8FLo+VRW5ajw0TbUzIRB5+vcHKVzbN/umLnyShXHLXmZlvgdghER166m03re7iHzkgUb91/UeqqnoP5GgdLMMBppkVMqv1+EELciY2SVLuR9R7/U03u4W8jPAo92DBFUIpEi0GdeEz/ExFi9cVIpnOZEd9aHV0uN/traU1f6zqXdsJchZXz7SX5vapMLPA7GSMcsjfrvaIwa0sLfWbMGz6Vh7JytGa0UTK4YDUiYhUUV3FmuFe/X7pA6WO1uZJvLbgP1s4/1c1E71+NeGHV+LToiC3DwQUp1GNBJ0bERHhTG8I/JaLFUTKgM9HdiOUZ50dwtODyh1OMgSjkYagAGfVUONq88xLWe/Sx9AoL/zVbTnZudpYaNPnossXbNGQ52xmtcLclxEnRoTi5WLrqt/KSxtw9fG1HU3XlPFfUDNoteqkgYZV5uHUjxQq9b9Ov0SnbPecRbqCTb1y55KdtxKDVNOcH+62xeHOCA2Ni/yljEtUez9BPMtz1pqRAzHLw==", "Expiration": "2018-12-11T06:32:30Z", "expire": "3600"}
- # 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
- # 使用临时token中的认证信息初始化StsAuth实例。
- auth = oss2.StsAuth(tokenss['AccessKeyId'],
- tokenss['AccessKeySecret'],
- tokenss['SecurityToken'])
- print(auth)
- ############### callback
- callback_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实例初始化存储空间。
- bucket = oss2.Bucket(auth, tokenss['endpoint'], tokenss['bucket_name'])
- # # 上传一个字符串。
- # bucket.delete_object('a-3.txt')
- # exit()
- # bucket.put_object('5ZBU8UD6RHMZJ5JW111A/vod2/3agjj.txt', b'gjjs')
- bucket.put_object('5ZBU8UD6RHMZJ5JW111A/vod2/asdf.txt', b'12345646',headers)
- exit()
- res = bucket.get_object('1234.txt')
- print(res.read())
|