def s3(s3_base): client = get_boto3_client() client.create_bucket(Bucket=s3_test_bucket_name, ACL="public-read") from s3fs.core import S3FileSystem S3FileSystem.clear_instance_cache() s3 = S3FileSystem(anon=False, client_kwargs={"endpoint_url": s3_endpoint_uri}) s3.invalidate_cache() yield s3
def s3(s3_base): from botocore.session import Session # NB: we use the sync botocore client for setup session = Session() client = session.create_client('s3', endpoint_url=endpoint_uri) client.create_bucket(Bucket=test_bucket_name, ACL='public-read') client.create_bucket( Bucket=versioned_bucket_name, ACL='public-read') client.put_bucket_versioning( Bucket=versioned_bucket_name, VersioningConfiguration={ 'Status': 'Enabled' } ) # initialize secure bucket client.create_bucket( Bucket=secure_bucket_name, ACL='public-read') policy = json.dumps({ "Version": "2012-10-17", "Id": "PutObjPolicy", "Statement": [ { "Sid": "DenyUnEncryptedObjectUploads", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::{bucket_name}/*".format( bucket_name=secure_bucket_name), "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "aws:kms" } } } ] }) client.put_bucket_policy(Bucket=secure_bucket_name, Policy=policy) for flist in [files, csv_files, text_files, glob_files]: for f, data in flist.items(): client.put_object(Bucket=test_bucket_name, Key=f, Body=data) S3FileSystem.clear_instance_cache() s3 = S3FileSystem(anon=False, client_kwargs={'endpoint_url': endpoint_uri}) s3.invalidate_cache() yield s3
def s3(): # writable local S3 system with moto.mock_s3(): from botocore.session import Session session = Session() client = session.create_client('s3') client.create_bucket(Bucket=test_bucket_name, ACL='public-read') client.create_bucket(Bucket=versioned_bucket_name, ACL='public-read') client.put_bucket_versioning( Bucket=versioned_bucket_name, VersioningConfiguration={'Status': 'Enabled'}) # initialize secure bucket client.create_bucket(Bucket=secure_bucket_name, ACL='public-read') policy = json.dumps({ "Version": "2012-10-17", "Id": "PutObjPolicy", "Statement": [{ "Sid": "DenyUnEncryptedObjectUploads", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::{bucket_name}/*".format( bucket_name=secure_bucket_name), "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "aws:kms" } } }] }) client.put_bucket_policy(Bucket=secure_bucket_name, Policy=policy) for k in [a, b, c, d]: try: client.delete_object(Bucket=test_bucket_name, Key=k) except: pass for flist in [files, csv_files, text_files, glob_files]: for f, data in flist.items(): client.put_object(Bucket=test_bucket_name, Key=f, Body=data) S3FileSystem.clear_instance_cache() s3 = S3FileSystem(anon=False) s3.invalidate_cache() yield s3 for flist in [files, csv_files, text_files, glob_files]: for f, data in flist.items(): try: client.delete_object(Bucket=test_bucket_name, Key=f, Body=data) client.delete_object(Bucket=secure_bucket_name, Key=f, Body=data) except: pass for k in [a, b, c, d]: try: client.delete_object(Bucket=test_bucket_name, Key=k) client.delete_object(Bucket=secure_bucket_name, Key=k) except: pass