| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | 
							- #!/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
 
- '''
 
- http://test.dvema.com/cloudVod/getSts?uidToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjaGFubmVsIjoiNCIsInVpZCI6IkZUU0xMOEhNNDM3WjM4V1UxMTFBIn0.wkrwYvIYf5qEukOSTxALSAgSqop-gNBdEvSwScOgYB8
 
- '''
 
- tokenss ={"ip": "120.237.157.184", "expire": "3600", "bucket_name": "cnvod3", "storage": "5ZBU8UD6RHMZJ5JW111A/vod2/", "endpoint": "oss-cn-shenzhen.aliyuncs.com", "Expiration": "2019-01-02T07:28:39Z", "AccessKeySecret": "6qLxVJZyUQ4RBCfQGXTRbiFJrUo9BEidKHp9tuK93Krv", "code": 0, "arn": "acs:ram::1901342792446414:role/stsoss/5ZBU8UD6RHMZJ5JW111A", "SecurityToken": "CAISxgJ1q6Ft5B2yfSjIr4n7Kc35tO5U4pOKd0X/kGdnWuFKm7Pp1Dz2IHFIf3NhAe0bv/kzm2lX7/YYlr0uebV4FXHoM/FQy6Z1rCGeOtOYkpRnPQ+HYNj3d1KIAjvXgeUsCoeQFaElE5XAQlTAkTAJkNmeXD6+XlujHISUgJp8FLo+VRW5ajw0TbUzIRB5+vcHKVzbN/umLnyShXHLXmZlvgdghER166m03re4iHzkgUb91/UeqqnoP5GgdLMMBppkVMqv1+EELsiH2SVLuR9R7/U03u4W8jHZud3GRARjySjWDsaKyP1KHi0kRJdjQvdt6+b7mac/+M6rztWvkk0RZ74ECXiDGtz5nPGpQr35aowLEp/gIGnI39y1MZ34jhgpe3pzNnkRKoZ6cC4oVEF9F22Fc/D+qArQDBy/UK+ey7GQWgfwCpUwlhqAAUkADkhHmc1Y0VJSCX7P7x0QK6cmkgKHDJuvqRQeuByEv1udBKNi1w/hPpegfmL6cWYl4LhYSavdElvg0CwyHD9dUuUlPXonnWSo52r5lhsgwpLgBmdmUhL8NnoGqzfeDq4ZU5FmM44vQXLU16qejz1oUjqTnquk0dVJW40K7fxj", "AccessKeyId": "STS.NJNbwMY1uUQaucNtg2VnftvB6"}
 
- # 使用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实例初始化存储空间。
 
- endpoint = tokenss['endpoint']
 
- bucket = oss2.Bucket(auth, tokenss['endpoint'], tokenss['bucket_name'])
 
- # # 上传一个字符串。
 
- # bucket.delete_object('a-3.txt')
 
- # exit()
 
- patht=tokenss['storage']+'gsafd'
 
- print(patht)
 
- print(endpoint)
 
- bucket.put_object(patht, b'asdf')
 
- # bucket.put_object('FTSLL8HM437Z38WU111A/vod4/1234.txt', b'12345646',headers)
 
- exit()
 
- res = bucket.get_object('1234.txt')
 
- print(res.read())
 
 
  |