使用 Amazon S3 對於雲端儲存解決方案來說很常見,但對於本機測試,與 AWS 互動可能效率低且成本高昂。 LocalStack 是一個功能齊全的本機 AWS 雲端堆疊,可模擬 AWS 服務。在本指南中,我們將逐步介紹如何在 macOS 上的 LocalStack 中設定 S3 儲存桶,討論使用此設定的好處,並提供完整的程式碼範例。
使用 LocalStack 模擬 S3 有以下主要優點:
確保您各自的作業系統上安裝了以下軟體:
brew install localstack
localstack start
注意:如果您遇到權限問題,請在命令前面加上 sudo。
brew install awscli
注意:以上指令適用於 macOS。尋找有關如何安裝 awscli 的完整文件。
aws configure
使用佔位符值:
輸出格式:json
設定 LocalStack 端點 URL:
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.")
運行腳本:
brew install localstack
localstack start
本文提供了在 LocalStack 中設定 S3 儲存桶的逐步演練。此設定非常適合本地開發,可讓您安全地測試 AWS S3 功能,而不會產生成本或需要網路連線。
以上是在 LocalStack 中設定 Sucket的詳細內容。更多資訊請關注PHP中文網其他相關文章!