私はS3Directを使用してAWS S3にアップロードしています。うまくいきます。しかし、同じ名前の別のファイルをアップロードすると上書きされます。私はバージョンをオンにした後、別のURLを持つファイルをサーバーに保存しますが、Djangoの参照URLは同じなので、最後にアップロードした2つのビデオで終わります。Django S3Directファイルの名前変更
私はこれをjavascriptに追加しようとしましたが、何もしませんでした。ビュー内の
var getUploadURL = function(e) {
var el = e.target.parentElement,
file = el.querySelector('.file-input').files[0],
dest = el.querySelector('.file-dest').value,
url = el.getAttribute('data-policy-url'),
form = new FormData(),
headers = {'X-CSRFToken': getCookie('csrftoken')}
/* These vars were added by me */
var currentdate = new Date($.now());
var datetime = currentdate.getDate() + "/"
+ (currentdate.getMonth()+1) + "/"
+ currentdate.getFullYear() + " @ "
+ currentdate.getHours() + ":"
+ currentdate.getMinutes() + ":"
+ currentdate.getSeconds();
form.append('type', file.type)
form.append('ext', file.datetime)/* Added by me */
form.append('name', file.name)
form.append('dest', dest)
そして、この:これは私がターミナルに期待したもの返さ
def get_upload_params(request):
/* The first two lines were already there */
content_type = request.POST['type']
filename = request.POST['name']
print "Filename before time added: ", filename
ext = os.path.splitext(filename)[1]
name = os.path.splitext(filename)[0]
time_now = datetime.datetime.now().strftime("%Y-%m-%d+%H:%M:%S")
filename = name + time_now + ext
print "Filename after time added: ", filename
しかしS3に渡されたファイル名が、元と同じであった、それだけで別のバージョンを作成しました。そして、データベースに送られたURLはS3の元のファイル名と元のバージョンのURLでした。