| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | #!/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']    print(credentials)def test():    print('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': 'ASIA2E67UIMD2KA76ZX3', 'SecretAccessKey': 'HbbZPLKcdr1vh81fUH5M8bGzhobPJ9/7SjOBqLNB', 'SessionToken': 'FQoGZXIvYXdzEOz//////////wEaDOT/uGl4KlSpHcQk1SL7AZW+0TxQFvhBp+UtPACl1L7WXftaHv7R5AozWYO/MmDHU1IDSQw0JNbK6v5xhOtxgdE2aSmN0UGq9g5SyI5+EX8xDrwuSg6b8fgUJ6Z9N62xO1e5qnY5wYI1R6xbmRHqCfIN+uBg/PzeKKcSLiLfK49nPbxTsgXn3drW+pQ4kjvyTDQlNVqwCk61eNTrt+WIqKz7e71BUV5I0vlERivyknWve5uoBrBGesYRSxAYT5/9MqvvGMc8k8lfDStlJOwANPqcXFyQFg8heU3pnenjJZOQ+vMHzEHxL7yZseq6SoadjkWT6xm4VyDLGPGr4IdUaoP1V9FFDdGbVHwzKM6crt8F'}    # 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.put_object(        Body='xxxxx',        Key='test',        Bucket='ansjerfilemanager',        # Expires=datetime()    )    # response = s3_resource.get_object(    #     Bucket='ansjerfilemanager',    #     Key='face.jpg',    # )    print(response)test()
 |