我有一个Django
应用程序,它允许用户在AWS S3 Bucket上上传csv
文件。假设我想将一个名为myfile.csv
的文件上传到一个s3 bucket,那么我就可以毫无问题地将它上传到我的bucket上
尽管如此,如果我将完全相同的文件重命名为myfile(1).csv
,那么出于某种原因,该文件将不再上传到bucket。有人知道为什么会这样吗?这是我的密码:
forms.py
class CsvForm(forms.ModelForm):
csv_file = forms.FileField(widget=forms.FileInput(
attrs= {
'class': 'form-group',
}
))
class Meta:
model = CSVUpload
fields = ('csv_file', )
def save(self):
csvfile = super(CsvForm, self).save()
return csvfile
def clean_csv_file(self):
uploaded_csv_file = self.cleaned_data['csv_file']
if uploaded_csv_file:
filename = uploaded_csv_file.name
if filename.endswith('.csv'):
return uploaded_csv_file
else:
raise forms.ValidationError("File must be csv")
else:
return uploaded_csv_file
型号.py
from converter.storage_backends import CsvStorage
from django.db import models
from django.utils import timezone
import time
class CSVUpload(models.Model):
csv_file = models.FileField(storage=CsvStorage())
def __str__(self):
return self.csv_file
存储\u后端.py
from storages.backends.s3boto3 import S3Boto3Storage
from django.conf import settings
import boto3
import time
class CsvStorage(S3Boto3Storage):
location = settings.AWS_CSV_LOCATION
file_overwrite = False
视图.py
def csvtojson(request):
if request.method == 'POST':
form = CsvForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect(about)
else:
form = CsvForm()
return render(request, 'fileconverter/csvtojson.html',{'form': form})
目前没有回答
相关问题 更多 >
编程相关推荐