Travailler avec Amazon S3 est courant pour les solutions de stockage cloud, mais pour les tests locaux, interagir avec AWS peut s'avérer inefficace et coûteux. LocalStack est une pile cloud AWS locale entièrement fonctionnelle qui émule les services AWS. Dans ce guide, nous expliquerons comment configurer un compartiment S3 dans LocalStack sur macOS, discuterons des avantages de l'utilisation de cette configuration et fournirons un exemple de code complet.
L'utilisation de LocalStack pour simuler S3 offre des avantages clés :
Assurez-vous que les éléments suivants sont installés sur votre système d'exploitation respectif :
brew install localstack
localstack start
Remarque : si vous rencontrez des problèmes d'autorisations, ajoutez sudo à la commande.
brew install awscli
Remarque : la commande ci-dessus est destinée à macOS. Trouvez une documentation complète sur la façon d'installer awscli.
aws configure
Utiliser des valeurs d'espace réservé :
Format de sortie : json
Définir l'URL du point de terminaison LocalStack :
export LOCALSTACK_ENDPOINT=http://localhost:4566
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 mb s3://my-local-bucket
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 ls
echo "Hello LocalStack!" > testfile.txt
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 cp testfile.txt s3://my-local-bucket
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 cp s3://my-local-bucket/testfile.txt downloaded_testfile.txt
pip install boto3
import boto3 from botocore.config import Config # Configuration for LocalStack localstack_config = Config( region_name='us-east-1', retries={'max_attempts': 10, 'mode': 'standard'} ) # Initialize the S3 client with LocalStack endpoint s3_client = boto3.client( 's3', endpoint_url="http://localhost:4566", aws_access_key_id="test", aws_secret_access_key="test", config=localstack_config ) bucket_name = "my-local-bucket" # Create the bucket s3_client.create_bucket(Bucket=bucket_name) print(f"Bucket '{bucket_name}' created.") # Upload a file s3_client.upload_file("testfile.txt", bucket_name, "testfile.txt") print("File uploaded.") # List objects in the bucket objects = s3_client.list_objects_v2(Bucket=bucket_name) for obj in objects.get('Contents', []): print("Found file:", obj['Key']) # Download the file s3_client.download_file(bucket_name, "testfile.txt", "downloaded_testfile.txt") print("File downloaded.")
Exécutez le script :
brew install localstack
localstack start
Cet article fournit une procédure pas à pas pour configurer un compartiment S3 dans LocalStack. Cette configuration est idéale pour le développement local, vous permettant de tester la fonctionnalité AWS S3 en toute sécurité sans encourir de frais ni avoir besoin d'une connexion Internet.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!