|
@@ -1,46 +1,16 @@
|
|
-#!/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 aliyunsdkcore import client
|
|
from aliyunsdksts.request.v20150401 import AssumeRoleRequest
|
|
from aliyunsdksts.request.v20150401 import AssumeRoleRequest
|
|
import json
|
|
import json
|
|
import oss2
|
|
import oss2
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-'''
|
|
|
|
-host = "" # just for example
|
|
|
|
-accessid = ""
|
|
|
|
-accesskey = ""
|
|
|
|
-bucket_name = ""
|
|
|
|
-channel_name = "test-channel"
|
|
|
|
-auth = Auth(accessid, accesskey)
|
|
|
|
-bucket = Bucket(auth, host, bucket_name)
|
|
|
|
-'''
|
|
|
|
-# Endpoint以杭州为例,其它Region请按实际情况填写。
|
|
|
|
|
|
+# Endpoint以杭州为例,其它egion请按实际情况填写。
|
|
endpoint = 'oss-cn-shenzhen.aliyuncs.com'
|
|
endpoint = 'oss-cn-shenzhen.aliyuncs.com'
|
|
-# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
|
|
|
|
-# access_key_id = 'LTAIXSozepSx81xe'
|
|
|
|
-# access_key_secret = '19BlxRiAHDPLx4mhz6vQZRuhK0eKed'
|
|
|
|
-access_key_id = 'LTAIKF7ohvwF5ugH'
|
|
|
|
-access_key_secret = 'AfBIeMdrvMN3m0EsQYuRkmNyA7uWoz'
|
|
|
|
-bucket_name = 'testrtmp'
|
|
|
|
|
|
+access_key_id = 'LTAIyMkGfEdogyL9'
|
|
|
|
+access_key_secret = '71uIjpsqVOmF7DAITRyRuc259jHOjO'
|
|
|
|
+bucket_name = 'cloudvod1'
|
|
# role_arn是角色的资源名称。
|
|
# role_arn是角色的资源名称。
|
|
-role_arn = 'acs:ram::1024237323330331:role/maxadmin'
|
|
|
|
|
|
+role_arn = 'acs:ram::1901342792446414:role/stsoss'
|
|
|
|
|
|
clt = client.AcsClient(access_key_id, access_key_secret, 'cn-shenzhen')
|
|
clt = client.AcsClient(access_key_id, access_key_secret, 'cn-shenzhen')
|
|
req = AssumeRoleRequest.AssumeRoleRequest()
|
|
req = AssumeRoleRequest.AssumeRoleRequest()
|
|
@@ -48,9 +18,9 @@ req = AssumeRoleRequest.AssumeRoleRequest()
|
|
# 设置返回值格式为JSON。
|
|
# 设置返回值格式为JSON。
|
|
req.set_accept_format('json')
|
|
req.set_accept_format('json')
|
|
req.set_RoleArn(role_arn)
|
|
req.set_RoleArn(role_arn)
|
|
-req.set_RoleSessionName('chanjunkai')
|
|
|
|
|
|
+req.set_RoleSessionName('uid13241234123')
|
|
req.set_DurationSeconds(3600)
|
|
req.set_DurationSeconds(3600)
|
|
-policys={
|
|
|
|
|
|
+policys = {
|
|
"Version": "1",
|
|
"Version": "1",
|
|
"Statement": [
|
|
"Statement": [
|
|
{
|
|
{
|
|
@@ -58,7 +28,8 @@ policys={
|
|
"oss:PutObject",
|
|
"oss:PutObject",
|
|
"oss:DeleteObject",
|
|
"oss:DeleteObject",
|
|
],
|
|
],
|
|
- "Resource": ["acs:oss:*:*:testrtmp/*"],
|
|
|
|
|
|
+ # "Resource": ["acs:oss:*:*:cloudvod1/*"],
|
|
|
|
+ "Resource": ["acs:oss:*:*:cloudvod1/test/*"],
|
|
"Effect": "Allow",
|
|
"Effect": "Allow",
|
|
"Condition": {
|
|
"Condition": {
|
|
"IpAddress": {
|
|
"IpAddress": {
|
|
@@ -74,15 +45,9 @@ body = clt.do_action(req)
|
|
# 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
|
|
# 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
|
|
token = json.loads(body)
|
|
token = json.loads(body)
|
|
print(token)
|
|
print(token)
|
|
-exit()
|
|
|
|
-tokens = {
|
|
|
|
- "Credentials":{
|
|
|
|
- 'AccessKeySecret': 'eDwALgKkfZp6eXD2jz8ckktfduneNCjEz8NgHxcZsVe',
|
|
|
|
- 'AccessKeyId': 'STS.NJNUa1UjHgo5idVKqY9wBLB3e',
|
|
|
|
- 'Expiration': '2018-11-15T09:06:30Z',
|
|
|
|
- 'SecurityToken': 'CAISwgJ1q6Ft5B2yfSjIr4n7HtuFuLVp0K3ea0Lnr3EMNfhuo4eYhzz2IHxLf3RuAe8dvvw+nGBV7vsdlqN4S5ZDR1HCbsJxtkXiZd84J9ivgde8yJBZom/MewHKeeKSvqL7Z+H+U6mSGJOEYEzFkSle2KbzcS7YMXWuLZyOj+wADLEQRRLqVSdaI91UKwB+0pN4U0HcLvGwKBXnr3PNBU5zwGpGhHh49L60z7/siGTXh0aozfQO9cajYMq4YtJwJot6S5D3pqgUF4vZ+SJc8RVR790ShadfqwzAo8uWDnhJkWzkVLOOqps1d1A/P/VlXfcU8NqEzKUi5raIyN+tkE0WZboOCh6yHt7wnJH2f8qyLcs8eLrBPHDA78uCLJGdsXl/PS1AaV0SJIFxci4oWUF0F27ASqqu6FnGZwalW1srcmfDSBocGoABBPrYt/W5rkesL4dOVkQTaYz14WpwbEQfMBi+8/T5xLEqUP4tuwsiiBbsQhfAm3QLKzGODGJB9bCcfxpQPSnZuAyCI4uSUZiuCFUzdKX/eaiurRDLMnACYx3aEzfmDCvQ6dYbbHxIdk+0UNMWk51eWKXfWnoH+udI6rkks2AWjTM='
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
|
|
+# exit()
|
|
|
|
+# tokens = {'RequestId': '2D83A43D-8D6B-44C5-83A4-3530BFB032EC', 'AssumedRoleUser': {'AssumedRoleId': '394329055954717182:chanjunkai', 'Arn': 'acs:ram::1901342792446414:role/stsoss/chanjunkai'}, 'Credentials': {'AccessKeySecret': 'FtPRvMDBRitAX8X7ZGoQ2DohrMWvMjP2EXVVSVqhmdyv', 'AccessKeyId': 'STS.NJHBY1uKvmvy2rRunerymDq7y', 'Expiration': '2018-11-30T07:23:54Z', 'SecurityToken': 'CAIS0wJ1q6Ft5B2yfSjIr4n9CeOFmJRX2rSSMFTjkW4wfvZBq7Scmzz2IHFIf3NhAe0bv/kzm2lX7/YYlqN4S5ZDR1HCbsJxtgf5G/c/J9ivgde8yJBZoljMewHKedGSvqL7Z+H+U6mMGJOEYEzFkSle2KbzcS7YMXWuLZyOj+wuDLEQRRLqVSdaI91UKwB+yrcdLmCDGfupPwLnpWDSAUF0wFce71ly8qOi2MaRxwPDhVnhsI8vqp/2P4KvYrsdXuh2WMzn2/dtJOiTknxb7x9X+LlxgPUDu02D3LC8G3Bd7w+LKPGultRkN11CYbUgEKNltIqF95oh4LSVzd+ojU8QYqcMA3j9PNnxmJKfRLn2Z4xlKeinYij3v4rRZsWvgWQNemkGMQ5GQd0lJ0JrBAYkIjOgcf77owqbOlr+GvXZj/hpiMov1Tvz4cGNPEOf5T4EVOPY4vQagAGFFahWtPsgkWPPJhSOu/bsFZGJFeQvb/Ij5nT5dPNiuEfvECu+ns2GmUB5sAQO9xeMmIBr9y2yteTIwoG8FQx5S4ybj051MK+K53GeRZOSd05iZRU8hpU3+O2mTlQI4FicDjG6C6my1IJpNPYjO+8Y9cWecm+aodAeBJLJS1WP6w=='}}
|
|
|
|
+
|
|
# 使用临时token中的认证信息初始化StsAuth实例。
|
|
# 使用临时token中的认证信息初始化StsAuth实例。
|
|
auth = oss2.StsAuth(token['Credentials']['AccessKeyId'],
|
|
auth = oss2.StsAuth(token['Credentials']['AccessKeyId'],
|
|
token['Credentials']['AccessKeySecret'],
|
|
token['Credentials']['AccessKeySecret'],
|
|
@@ -92,5 +57,5 @@ print(auth)
|
|
bucket = oss2.Bucket(auth, endpoint, bucket_name)
|
|
bucket = oss2.Bucket(auth, endpoint, bucket_name)
|
|
# 上传一个字符串。
|
|
# 上传一个字符串。
|
|
# res = bucket.put_object('oss_media_hls.ts', b'hello world')
|
|
# res = bucket.put_object('oss_media_hls.ts', b'hello world')
|
|
-res = bucket.put_object('object-name.txt', b'hello world')
|
|
|
|
|
|
+res = bucket.put_object('test/test-name.txt', b'hello world')
|
|
print(res)
|
|
print(res)
|