|
@@ -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='7h1cV8wSkJpvMELjS/3Zutp1t3/LAxJYY60oZ5gH',
|
|
|
+ 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='7h1cV8wSkJpvMELjS/3Zutp1t3/LAxJYY60oZ5gH',
|
|
|
+ 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()
|