36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
import boto3
|
|
import json
|
|
from botocore.client import Config
|
|
|
|
s3 = boto3.client('s3',
|
|
endpoint_url='http://minio:9000',
|
|
aws_access_key_id='minioadmin',
|
|
aws_secret_access_key='minioadmin123',
|
|
config=Config(signature_version='s3v4'),
|
|
region_name='us-east-1')
|
|
|
|
def set_public_policy(bucket_name):
|
|
policy = {
|
|
"Version": "2012-10-17",
|
|
"Statement": [
|
|
{
|
|
"Effect": "Allow",
|
|
"Principal": {"AWS": ["*"]},
|
|
"Action": ["s3:GetObject"],
|
|
"Resource": [f"arn:aws:s3:::{bucket_name}/*"]
|
|
}
|
|
]
|
|
}
|
|
|
|
policy_string = json.dumps(policy)
|
|
|
|
try:
|
|
s3.put_bucket_policy(Bucket=bucket_name, Policy=policy_string)
|
|
print(f"Bucket '{bucket_name}' siyosati 'Public Read' qilib belgilandi.")
|
|
except Exception as e:
|
|
print(f"Xato: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
set_public_policy('media')
|
|
set_public_policy('static')
|