osssigput.py 4.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD018
  6. @NAME: AnsjerFormal
  7. @software: PyCharm
  8. @DATE: 2018/11/8 9:23
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: oss_sts.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. # -*- coding: utf-8 -*-
  15. '''
  16. 生成sts上传授权
  17. '''
  18. from aliyunsdkcore import client
  19. from aliyunsdksts.request.v20150401 import AssumeRoleRequest
  20. import json
  21. import oss2
  22. import base64
  23. '''
  24. http://test.dvema.com/cloudVod/getSts?uidToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjaGFubmVsIjoiNCIsInVpZCI6IkZUU0xMOEhNNDM3WjM4V1UxMTFBIn0.wkrwYvIYf5qEukOSTxALSAgSqop-gNBdEvSwScOgYB8
  25. '''
  26. # 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}
  27. tokenss ={"AccessKeyId": "STS.NKKRWdsfkMyHA9rz9SN6s26sA", "endpoint": "oss-cn-shenzhen.aliyuncs.com", "AccessKeySecret": "G7CRveV6XpcBnVkRd9qVxM8c6TkEzA4N3wdNmxTzHyQQ", "arn": "acs:ram::1901342792446414:role/stsoss/151564262337939513800138001", "bucket_name": "apg", "storage": "151564262337939513800138001/uid_preview/", "SecurityToken": "CAISrwN1q6Ft5B2yfSjIr4j+Ge3QnrlK+rujQx/DnjkGQrlf3fPYozz2IHFIf3NhAe0bv/kzm2lX7/YYlrIqFsYYGxCeM5ErtcsGqlL8OtGR45Tstuxc0MT90Z0w592+jqHoeOzcYI736p7PAgm2Y0YRrJL+cTK9JXzHVbSClZ9gaPkOQwC8dkAoLdxKJwxk2pd4UHzKLqSVLwLNiGjdB1YKwg1nkjFT5KCy3sC74BjTh0GYr+gOvNbeL4SDZcthN4sFcbXT5uFtcbfb2yN98gVD8LwM7JZJ4jDapNqQcR8zpxyNKLjT6cY9bl07NKEiFOkd8aGhy6Ei5LaIzNumkEcQZLoFC3yGH9D4mJKGatjLW/89cbHkQTWvtvmEKpjytS49fHsfL3kkUtE9K3h2e2VOLTbBMf2D+UvWRQ2hRqOZy9tBs/xPwk7v4MCBKnWWXrydylx4AJInaF4yPBNktg6IMI1+Kl0UKgg7XenEF9kvMkwH9ZmF51OCCndSqVhMpOD7av/svaQSVJ7yRJou0/BGNcgd6TpyEgmmFu7x0xhNJDZ/L61Ky672Io8ZYyIABSVLChqAAUU8EA+LN1EXtGazb+yfWncE/l3wUXsW0qT7EU+m2YXBKt+yzl8Ls9xicDj1NMIyy1KrtHXOM8iHTGiNC0U1Ulnwl6yprCW2snc7q2CiaAjzTIRkPjgGd+gA6hO2neSifA0bfhkhitLb8HEq+g32zpCYcdeMigawRWBrNdoCsGqu", "code": 0, "expire": 3600, "Expiration": "2019-05-13T09:42:52Z"}
  28. # 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
  29. # 使用临时token中的认证信息初始化StsAuth实例。
  30. auth = oss2.StsAuth(tokenss['AccessKeyId'],
  31. tokenss['AccessKeySecret'],
  32. tokenss['SecurityToken'])
  33. print(auth)
  34. ############### callback
  35. callback_dict = {}
  36. callback_dict['callbackUrl'] = 'http://www.dvema.com:3000/?token=token&filename=shijianchuo&size=1234&len=1234'
  37. # 设置回调请求消息头中Host的值, 如oss-cn-hangzhou.aliyuncs.com。
  38. callback_dict['callbackHost'] = 'oss-cn-shenzhen.aliyuncs.com'
  39. # 设置发起回调时请求body的值。
  40. callback_dict['callbackBody'] = 'filename=${object}&size=${size}&mimeType=${mimeType}'
  41. # 设置发起回调请求的Content-Type。
  42. callback_dict['callbackBodyType'] = 'application/x-www-form-urlencoded'
  43. # 回调参数是Json格式,并且需要Base64编码。
  44. callback_param = json.dumps(callback_dict).strip()
  45. base64_callback_body = oss2.utils.b64encode_as_string(callback_param)
  46. # 回调参数编码后放在Header中发送给OSS。
  47. headers = {'x-oss-callback': base64_callback_body}
  48. ################
  49. # exit()
  50. # 使用StsAuth实例初始化存储空间。
  51. endpoint = tokenss['endpoint']
  52. bucket = oss2.Bucket(auth, tokenss['endpoint'], tokenss['bucket_name'])
  53. # # 上传一个字符串。
  54. # bucket.delete_object('a-3.txt')
  55. # exit()
  56. print(tokenss['storage'])
  57. res = bucket.list_objects(prefix=tokenss['storage'])
  58. print(res)
  59. exit()
  60. # patht = tokenss['storage'] + 'asfsdafsdafdsa'
  61. # print(patht)
  62. # print(endpoint)
  63. # print(bucket.put_object(patht, b'ddd'))
  64. # # bucket.put_object('FTSLL8HM437Z38WU111A/vod4/1234.txt', b'12345646',headers)
  65. # exit()
  66. res = bucket.get_object('151564262337939513800138001/uid_preview/asfsdafsdafdsa')
  67. print(res.read())