osssigput.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. tokenss = {"AccessKeyId": "STS.NHxxqYRJFeeZJcNsD3u6i9t61",
  24. "AccessKeySecret": "iAnPvLNruXs2ZQxURiuhGwWC2kwv94QhmepZcQuwsWc",
  25. "SecurityToken": "CAIS0wJ1q6Ft5B2yfSjIr4vNM8vtv5Vn0qexSEX/l0RmeblF1rGd0zz2IHFIf3NhAe0bv/kzm2lX7/YYlqN4S5ZDR1HCbsJxtk7Uf9wwJ9ivgde8yJBZoljMewHKedGSvqL7Z+H+U6mMGJOEYEzFkSle2KbzcS7YMXWuLZyOj+wuDLEQRRLqVSdaI91UKwB+yrcdLmCDGfupPwLnpWDSAUF0wFce71ly8qOi2MaRxwPDhVnhsI8vqp/2P4KvYrsdXuh2WMzn2/dtJOiTknxb7x9X+LlxgPUDu02D3LC8G3Bd7w+LKPGultRkN11CYbUgEKNltIqF95oh4LSVzd+ojU8QYqcMA3j9PNnxmJKfRLn2Z4xlKeinYij3v4rRZsWvgWQNemkGMQ5GQd0lJ0JrBAYkIjOgcf77owqbOlr+GvXZj/hpiMov1Tvz4cGNPEOf5T4EVOPY4vQagAE6AcP5nsFSY2fDHKLn25q8PiTjO5LuHOJV6NwJ6jG8RjXu0/5qS1gmzQeThhUHkfErNnuTWbu53bS0HZ9bPEus7AoS9a0+4PsfEVJcVPAzqXQt2o7IgEPQXPB0/YD8pkNip+geoNPTqYRpbmD8Xc6PG65sTLPoevyDlWhp8z3noQ==",
  26. "Expiration": "2018-12-10T07:16:46Z", "expire": "3600", "endpoint": "oss-cn-shenzhen.aliyuncs.com",
  27. "bucket_name": "cloudvod1", "arn": "acs:ram::1901342792446414:role/stsoss/chanjunkai"}
  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. ''''''
  35. callback_dict = {}
  36. callback_dict['callbackUrl'] = 'http://www.dvema.com:3000/?id=1234&xxx=3423'
  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. bucket = oss2.Bucket(auth, tokenss['endpoint'], tokenss['bucket_name'])
  52. # # 上传一个字符串。
  53. # bucket.delete_object('a-3.txt')
  54. # exit()
  55. bucket.put_object('sdf.txt', b'dsafdasfas',headers)
  56. exit()
  57. res = bucket.get_object('1234.txt')
  58. print(res.read())