Selaa lähdekoodia

增加开发测试分支

chenjunkai 6 vuotta sitten
vanhempi
commit
e1231389a1
5 muutettua tiedostoa jossa 236 lisäystä ja 36 poistoa
  1. 1 0
      .gitignore
  2. 86 0
      Ansjer/test/oss_sts.py
  3. 43 0
      Ansjer/test/osssigput.py
  4. 88 0
      Ansjer/test/s3sts.py
  5. 18 36
      Ansjer/test/ttsqiniu.py

+ 1 - 0
.gitignore

@@ -10,3 +10,4 @@
 *.log
 */__pycache__
 /Ansjer/test/__pycache__
+/Ansjer/test/__init__.py

+ 86 - 0
Ansjer/test/oss_sts.py

@@ -0,0 +1,86 @@
+#!/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
+
+
+
+'''
+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 = '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'
+# role_arn是角色的资源名称。
+role_arn = 'acs:ram::1024237323330331:role/maxadmin'
+
+clt = client.AcsClient(access_key_id, access_key_secret, 'cn-shenzhen')
+req = AssumeRoleRequest.AssumeRoleRequest()
+
+# 设置返回值格式为JSON。
+req.set_accept_format('json')
+req.set_RoleArn(role_arn)
+req.set_RoleSessionName('chanjunkai')
+req.set_DurationSeconds(3600)
+policys={
+    "Version": "1",
+    "Statement": [
+        {
+            "Action": [
+                "oss:PutObject",
+            ],
+            "Resource": ["acs:oss:*:*:testrtmp/*"],
+            "Effect": "Allow",
+            "Condition": {
+                "IpAddress": {
+                    "acs:SourceIp": "120.237.157.184"
+                }
+            }
+        }
+    ]
+}
+req.set_Policy(Policy=json.dumps(policys))
+body = clt.do_action(req)
+# body = clt.do_action_with_exception(req)
+# 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
+token = json.loads(body)
+print(token)
+exit()
+
+# 使用临时token中的认证信息初始化StsAuth实例。
+auth = oss2.StsAuth(token['Credentials']['AccessKeyId'],
+                    token['Credentials']['AccessKeySecret'],
+                    token['Credentials']['SecurityToken'])
+print(auth)
+# 使用StsAuth实例初始化存储空间。
+bucket = oss2.Bucket(auth, endpoint, bucket_name)
+# 上传一个字符串。
+bucket.put_object('object-name.txt', b'hello world')

+ 43 - 0
Ansjer/test/osssigput.py

@@ -0,0 +1,43 @@
+#!/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
+
+endpoint = 'oss-cn-shenzhen.aliyuncs.com'
+
+bucket_name = 'testrtmp'
+
+tokenss={
+    'AccessKeySecret': '9MVdJH5E4roR2pGCcpNFcJ4Wi57wS2yu53iLdvE4M36A', 'AccessKeyId': 'STS.NJf7jVFEqpz7TnaPfedqBgxHq', 'Expiration': '2018-11-08T10:08:43Z', 'SecurityToken': 'CAIS8wF1q6Ft5B2yfSjIr4nTfNDiq5pQx7jcVkjQtGYwaP5uiL3jkzz2IHxLf3RuAe8dvvw+nGBV7vsdlqVoRoReREvCKM1565kPOKhnnQ2F6aKP9rUhpMCPOwr6UmzWvqL7Z+H+U6muGJOEYEzFkSle2KbzcS7YMXWuLZyOj+wMDL1VJH7aCwBLH9BLPABvhdYHPH/KT5aXPwXtn3DbATgD2GM+qxsmsf7jmJbDsUCF1waikbRMnemrfMj4NfsLFYxkTtK40NZxcqf8yyNK43BIjvwq0/cZp2+Y5YHFUgEBvk3bbPC099R/JQN8Z64q6ADmag1lFZQagAE0jbI12UqUMUMgurg9mLUIw4sch1Uzg+hYPtucIz6+X22kwejg0frVWzmGTZkz80wgt7XZsYrRYQlQt+imbrajh+TGwFJ/jZA9d/YUAfZtNlVXhMv3F1zuHxvhFPRgfK9RsFN1c0SW4wbRl/5jqnpuvab0E6ayfHxPfIVYs+IAhA=='}
+# 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
+
+# 使用临时token中的认证信息初始化StsAuth实例。
+auth = oss2.StsAuth(tokenss['AccessKeyId'],
+                    tokenss['AccessKeySecret'],
+                    tokenss['SecurityToken'])
+print(auth)
+# exit()
+# 使用StsAuth实例初始化存储空间。
+bucket = oss2.Bucket(auth, endpoint, bucket_name)
+
+# 上传一个字符串。
+# bucket.put_object('xx-name.txt', b'hello world')
+res =bucket.get_object('object-name.txt')
+print(res.read())

+ 88 - 0
Ansjer/test/s3sts.py

@@ -0,0 +1,88 @@
+#!/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 17:30
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+@file: s3sts.py
+@Contact: chanjunkai@163.com
+"""
+
+def getCredentials():
+    import boto3
+    REGION_NAME = 'us-east-1'  # e.g
+    import json
+
+    sts = boto3.client(
+        'sts',
+        aws_access_key_id='AKIAIXAA4C3QCK7ZNUOA',
+        aws_secret_access_key='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',
+        region_name=REGION_NAME
+    )
+
+    Policy = {"Version": "2012-10-17",
+              "Statement": [{"Effect": "Allow", "Action": "s3:*", "Resource": ["arn:aws:s3:::ansjerfilemanager/*"]}]}
+    credentials = sts.get_federation_token(
+        Name='chanjunkai@163.com',  # or any unique text related to user
+        Policy=json.dumps(Policy),
+        DurationSeconds=3600,
+        # minimum is 200 which is enough as token is just for start of request and necessarily need not live throughout the life of the whole upload.
+    )
+
+    print(credentials)
+    access_key_id = credentials['Credentials']['AccessKeyId']
+    session_token = credentials['Credentials']['SessionToken']
+    secret_access_key = credentials['Credentials']['SecretAccessKey']
+
+# getCredentials()
+#
+# exit()
+def getCredentialsTemplate():
+    import boto3
+    REGION_NAME = 'us-east-1'  # e.g
+
+    sts = boto3.client(
+        'sts',
+        aws_access_key_id='AKIAIXAA4C3QCK7ZNUOA',
+        aws_secret_access_key='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',
+        region_name=REGION_NAME
+    )
+
+    Policy = {"Version": "2012-10-17", "Statement": [
+        {"Effect": "Allow", "Action": "s3:*", "Resource": ["arn:aws:s3:::<your-bucket>/<key-folder>/*"]}]}
+    credentials = sts.get_federation_token(
+        Name='12132@qq.com',  # or any unique text related to user
+        Policy={},
+        DurationSeconds=3600,
+        # minimum is 200 which is enough as token is just for start of request and necessarily need not live throughout the life of the whole upload.
+    )
+    access_key_id = credentials['Credentials']['AccessKeyId']
+    session_token = credentials['Credentials']['SessionToken']
+    secret_access_key = credentials['Credentials']['SecretAccessKey']
+
+def test():
+    import boto3
+    REGION_NAME = 'us-east-1'  # e.g
+    import json
+    # crd = {'Credentials': {'AccessKeyId': 'ASIA2E67UIMDZEZW7F56', 'SecretAccessKey': '2XE3bxqUlt7RTwojtsOxAQdp25dXlPSOGJr4PJ9l', 'SessionToken': 'FQoGZXIvYXdzEHIaDNE8Ddu2SeUjFQB3ICL7AVZuoryvjuDgFFkNuB81R2tO+jo5xbH3mecUN9SygDRWccfGqUkZZli8h9oF9nxht3LzawpTzR8Xsk3Zcq7hXZ4n69nNjCzO5iRAqNU5OSA5QdS70xcJyGBvMz5QX+QL6T8nTUf0qImvgTgzHl1U7dhPDkpR2TTpuFkoCxPjPDDmljA45TzOzDPkZ9P48njKF0ijJsWKUIJSOOXpixn7QZHE0+WzCrl4OQdr4gyYBDufYQl4Hc/jhG1W40FE9KARRClOFQk01gc8RZR07K26+bDUfLdhT4uBpwZ64xR64VQX0OKVu0e9hjPFEePDheSIwdzS7htJomuF5Vq7KIGuk98F', 'Expiration': datetime.datetime(2018, 11, 9, 1, 38, 25, tzinfo=tzutc())}, 'FederatedUser': {'FederatedUserId': '697864307463:chanjunkai@163.com', 'Arn': 'arn:aws:sts::697864307463:federated-user/chanjunkai@163.com'}, 'PackedPolicySize': 11, 'ResponseMetadata': {'RequestId': 'c4e67d2b-e3b7-11e8-b1b0-bfa03e244fac', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'c4e67d2b-e3b7-11e8-b1b0-bfa03e244fac', 'content-type': 'text/xml', 'content-length': '1151', 'date': 'Fri, 09 Nov 2018 00:38:24 GMT'}, 'RetryAttempts': 0}}
+    crd = {'AccessKeyId': 'ASIA2E67UIMD4N3CQ3E4', 'SecretAccessKey': 'Q2eTydFr1OspXzWwugRivNMK34P7FpoSFR1zj4y5', 'SessionToken': 'FQoGZXIvYXdzEHMaDA3GVRjbxTC144XcCyL7AVB+z7Hl3NsQAHDa6zqB20hQdM4WaB8PPaqW9nikJWmUxc0sW1MNFGCW5haixnQK7mKv6dnal+faA2d+aF/BS7zNmALwzGvx9l+QweJQ/PDmEBYfq7MhjcQfQspKDrongeSKQYwRQ6hBVtfdZi/A71yJjBl50zFdvzBkR8xHImgtEFoIzwz16GkoWODuV3TsGKLIypiOV87icQalMaFKnu1vU7xO1rc65mroQ2Nx5GAmp3Nu+siI8MNXPqlCtRxb7w5hMOV0yhhI7HMr424VXKlbXwmkHAF6E1iZ0OiyqrBvPV8r+wzTRe49aXZ9U8DSn96Ueh6+74AxYrowKKO8k98F'}
+
+
+    # s3_resource = boto3.resource(
+    s3_resource = boto3.client(
+        's3',
+        aws_access_key_id=crd['AccessKeyId'],
+        aws_secret_access_key=crd['SecretAccessKey'],
+        aws_session_token=crd['SessionToken'],
+    )
+    response = s3_resource.get_object(
+        Bucket='ansjerfilemanager',
+        Key='face.jpg',
+    )
+    print(response)
+
+test()

+ 18 - 36
Ansjer/test/ttsqiniu.py

@@ -1,37 +1,19 @@
-#!/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/5 14:40
-@Version: python3.6
-@MODIFY DECORD:ansjer dev
-@file: ttsqiniu.py
-@Contact: chanjunkai@163.com
-"""
+import requests
+
+
+def send_simple_message():
+    res = requests.post(
+        "https://api.mailgun.net/v3/chanjunkai.janka.top/messages",
+        auth=("api", "key-808d5d958a2ab8076de3a12f742ead50"),
+        data={"from": "<mailgun@chanjunkai.janka.top>",
+              # "to": "<chanjunkai@163.com>",
+              "to": "<1758730877@qq.com>",
+              "subject": "Hello chanjunkai",
+              "text": "Congratulations chanjunkai, you just sent an email with Mailgun!  You are truly awesome!"})
+    print(res.json())
+
+send_simple_message()
+
+
+
 
-# -*- coding: utf-8 -*-
-# flake8: noqa
-from qiniu import Auth
-#需要填写你的 Access Key 和 Secret Key
-access_key = 'dwdHw1pQ9wFNiHDdflBUiZyWmiLppd5VCC2yF0O_'
-secret_key = 'uTn7hdKD9Mbf2dzMWjLj2e9V1nXN7HAsOGRKwqDF'
-#构建鉴权对象
-q = Auth(access_key, secret_key)
-#要上传的空间
-bucket_name = 'test'
-#上传到七牛后保存的文件名
-key = '/*'
-#生成上传 Token,可以指定过期时间等
-# 上传策略示例
-# https://developer.qiniu.com/kodo/manual/1206/put-policy
-policy = {
- # 'callbackUrl':'https://requestb.in/1c7q2d31',
- # 'callbackBody':'filename=$(fname)&filesize=$(fsize)'
- # 'persistentOps':'imageView2/1/w/200/h/200'
- }
-#3600为token过期时间,秒为单位。3600等于一小时
-token = q.upload_token(bucket_name, key, 3600, policy)
-print(token)