要使用AWS S3的预签名URL进行文件上传和下载,你可以使用AWS SDK来生成预签名URL并进行相应的操作。以下是使用AWS SDK for Python(boto3)的代码示例:
pip install boto3
import boto3
from botocore.exceptions import NoCredentialsError
# 创建S3客户端
s3 = boto3.client('s3')
def generate_presigned_url_upload(bucket_name, object_name, expiration=3600):
try:
response = s3.generate_presigned_url('put_object',
Params={'Bucket': bucket_name,
'Key': object_name},
ExpiresIn=expiration)
except NoCredentialsError:
return None
return response
def generate_presigned_url_download(bucket_name, object_name, expiration=3600):
try:
response = s3.generate_presigned_url('get_object',
Params={'Bucket': bucket_name,
'Key': object_name},
ExpiresIn=expiration)
except NoCredentialsError:
return None
return response
# 生成预签名URL用于文件上传
upload_url = generate_presigned_url_upload('your-bucket-name', 'your-object-key')
print(f'Upload URL: {upload_url}')
# 生成预签名URL用于文件下载
download_url = generate_presigned_url_download('your-bucket-name', 'your-object-key')
print(f'Download URL: {download_url}')
请注意,你需要将"your-bucket-name"替换为你的S3存储桶的名称,"your-object-key"替换为你要上传或下载的对象的键。
以上是使用AWS SDK for Python(boto3)生成AWS S3预签名URL进行文件上传和下载的示例代码。你可以根据自己的需求进行相应的修改和扩展。