,可以通过以下步骤实现:
AWS_ACCESS_KEY_ID = 'your_access_key_id'
AWS_SECRET_ACCESS_KEY = 'your_secret_access_key'
AWS_STORAGE_BUCKET_NAME = 'your_bucket_name'
AWS_S3_REGION_NAME = 'your_s3_region'
import boto3
from django.conf import settings
from django.core.files.storage import default_storage
from django.core.files.base import ContentFile
from django.http import JsonResponse
def upload_csv_to_s3(request):
if request.method == 'POST' and request.FILES['csv_file']:
csv_file = request.FILES['csv_file']
file_name = csv_file.name
s3 = boto3.client('s3')
try:
s3.upload_fileobj(csv_file, settings.AWS_STORAGE_BUCKET_NAME, file_name)
return JsonResponse({'message': 'CSV file uploaded successfully'})
except Exception as e:
return JsonResponse({'message': 'Failed to upload CSV file'})
else:
return JsonResponse({'message': 'No CSV file found'})
from django.urls import path
from .views import upload_csv_to_s3
urlpatterns = [
path('upload-csv/', upload_csv_to_s3, name='upload_csv'),
]
enctype
属性设置为multipart/form-data
,以支持文件上传。<form method="post" action="{% url 'upload_csv' %}" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="csv_file">
<button type="submit">Upload</button>
</form>
以上步骤完成后,用户可以通过该表单选择CSV文件并上传到S3存储桶中。需要注意的是,这只是一个简单的示例,你可以根据实际需求进行更复杂的文件处理和错误处理。
推荐的腾讯云相关产品:腾讯云对象存储(COS)。腾讯云对象存储(COS)是一种高可用、高可靠、安全、低成本的云存储服务,适用于存储大量非结构化数据,如图片、音视频、备份、恢复、容灾等。你可以通过以下链接了解更多关于腾讯云对象存储的信息:腾讯云对象存储(COS)。
领取专属 10元无门槛券
手把手带您无忧上云