görebilirsiniz url sabitleyerek bir dosya gizli hale getirme.Nasıl o doğrulanmış değilken gizlenecek bir resim veya bir dosyayı güvenli bir yol olup olmadığını sadece doğrulanmış kullanıcılar merak ediyorum
o kullanıcı kimlik doğrulaması durumunda yalnızca görülebilir web sitemde bir resim bulunduğunu varsayalım. Ama şey şu ki, URL'yi kopyalayabilir veya görüntüyü yeni sekmede açabilirim.
http://siteis.com/media/uploaded_files/1421499811_82_Chrysanthemum.jpg
Ve yine, ben doğrulanmış değil bile, o url giderek o belirli görüntü elde edebilirsiniz. Yani, benim sorunum, dosyaları nasıl güvenli hale getirebilirim, böylece yalnızca kimliği doğrulanmış kullanıcılar görecek?
Güncelleme:
görünüm:
def pictures(request, user_id):
user = User.objects.get(id=user_id)
all = user.photo_set.all()
return render(request, 'pictures.html',{
'pictures': all
})
modeller:
def get_upload_file_name(instance, filename):
return "uploaded_files/%s_%s" %(str(time()).replace('.','_'), filename)
class Photo(models.Model):
photo_privacy = models.CharField(max_length=1,choices=PRIVACY, default='F')
user = models.ForeignKey(User)
image = models.ImageField(upload_to=get_upload_file_name)
ayarları:
if DEBUG:
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "myproject", "static", "static-only")
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "myproject", "static", "media")
STATICFILES_DIRS = (
os.path.join(os.path.dirname(BASE_DIR), "myproject", "static", "static"),
)
Güncelleme:
şablonu:
{% if pictures %}
{% for photo in pictures %}
<img src="/media/{{ photo.image }}" width="300" alt="{{ photo.caption }}"/>
{% endfor %}
{% else %}
<p>You have no picture</p>
{% endif %}
url:
url(r'^(?P<user_name>[\[email protected]%.]+)/photos/$', 'pictures.views.photos', name='photos'),
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
dosya adlarını sterilize nasıl bir düşünce için
django.views.static.serve
edin Bir yolu denetleyici URL işlemek '/ media/uploaded_files/*' ve kimlik bilgilerini kontrol etmesi olacaktır. Yetkili değilse, bir 404 durumu döndürün. – Javier@Javier Lütfen güncellemeye bir göz atabilir ve nasıl yapılacağını önerebilir misiniz? Teşekkür ederim. – Robin
Dosyaların URL'si artık statik bir parçası değil, mantıksal bir URL olmalıdır. Ve sonra Şeyhan Khalid'ın yayınladığı şeye benzer bir şey yaparım. – Javier