Bir dosyayı, bir dosyayı (mp3, pdf, vb.) Yalnızca bir kez ve maskeyi indirmek için kullanabilecekleri benzersiz bir koda sahip olacağı bir etkinlikte bir kart satmanın bir yolunu arıyorum. doğru dosya konumu bu yüzden dosyayı indiren bir kullanıcı, dosyayı bir kereden fazla indiremez. Sunucumuzun birlikte konumlandığı bant genişliğini kaydetmek için dosyayı Amazon S3'te barındırmak güzel olurdu.insanlar dosyalarını indirmek için bir kerelik url sağlamak için Django/Python çözüm nedir?
Kodlar hakkındaki düşüncelerim, kartlara basılacak benzersiz kodları önceden oluşturmak ve bunları, dosyanın indirilme sayısını saklayan bir alana sahip olabilecek bir veritabanında saklamak olacaktır. Bu şekilde, kullanıcının dosyayı indirmesine izin vereceğimiz kaç denemeyi ayarlayabiliriz.
Yönlendirmem gereken kısmı, kullanıcıların bu url'yi çalamadığı ve dosyayı istedikleri kadar karşıdan yükleyememesi için orijinal dosya konumunu nasıl gizlerim/gizlerim. Ben Google aramaları yaptık ve ben de doğru anahtar kelimeleri kullanarak arama değilim ya da çok sayıda kütüphaneler veya parçacıkları bu tür bir şey için zaten orada yoktur.
Sanırım gerçek dosya ile dosyayı karşıdan yükleyen kullanıcı arasında bir çeşit proxy gibi davranan django.views.static.serve
kullanarak bir şeyler hazırlayabileceğimi tahmin edebilirim. Bu yöntemin tek dezavantajı, gerçek web sunucusunu kullanmam gerekecek ve dosyayı Amazon S3'te saklayamayacağımdı.
Herhangi bir öneri veya düşünce büyük takdir edilmektedir.
Bu en temel yaklaşım olmakla birlikte, tüm dosya şişman Python/Django sunucu iplik üzerinden akış zorundadır ettiklerinden bu dosyaların bir çok hizmet eğer sunucu zarar yapabiliriz. –
Evet, bir süper hızlı çözüm değil, ama onun durumdaki performansı bir sorun olmayacak gibi görünüyor. Her kullanıcıya fiziksel olarak bir kart satması gerekiyor, bu yüzden günde 100 indirmeye bile yakın bir yerde beklemeyeceğim. –