2012-07-21 15 views
18

Küçük Resim URLS’lerinde param var. Neden olduğundan emin değilim. Kullandığımız sorl-thumbnail veya boto depolama ile ilgili olduğunu düşünüyorum. Ek paramları URL’den nasıl kaldırırım? Boto/s3 veya sorl'dan geliyorlar. Hata ayıklama hakkında hiçbir fikrim yok.URL Param'larında görünen İmza/Sona Erenler/Erişim Anahtarı Kimliği. Django/Boto/S3

+0

Burada URL'nin bir örneğini yapıştırabilir misiniz? – Keshi

+0

İşte bir örnek: https://eniyiyorumlar.s3.amazonaws.com/media/product_photos/yuruyus-bandi/dynamic-v100.jpg?Signature=4C45X28vHf07rkVXj4hvqxAxTeg%3D&Expires=1342920217&AWSAccessKeyId=AKIAJIDT4T4CVUPDP7RQ - boto’dan geliyor Sorl kullan ve ben de aynı çıktıyı aldım. Aynı soruya sahip – Intenex

cevap

5

Eklenen ek parametreler, Query String Authentication uygulamak için vardır. Bu, URL'yi S3'te saklanan özel kaynaklara önceden imzalamanıza olanak tanır. Önceden imzalanmış URL’ye sahip olduğu sürece (ve süresi dolmamışsa), herkes tarafından okunabilir olmasa bile bu kaynaklara erişebileceklerdir.

Ek parametreler olmadan, bu özel S3 kaynaklarına herkese açık erişim sağlama yolu yoktur.

+0

S3 neden özel kaynaklıdır? Onları nasıl kamuoyuna açıklarım? – LILI

+0

Tüm içerik S3'te varsayılan olarak özeldir. Key nesnesinin boto olarak make_public() yöntemini kullanarak genel olarak okunabilir olarak değiştirebilir veya bir GUI kullanmayı tercih ederseniz AWS Konsolu'nu kullanabilirsiniz. – garnaat

+0

Boto3, özel olup olmadığını bilmez - varsayılan, URL’yi her iki şekilde de erişebilmek için imzalamaktır. Herkese açıksa, bu ayarı, imzanın URL – r3m0t

58

Kullanım: Yanlış AWS_QUERYSTRING_AUTH = benim için

+18

URL'sinden kalması için uygulayabilirsiniz. Bu yanıtın yararlı olması için daha fazla ayrıntıya ihtiyacı vardır. – rjsvaljean

+4

Oldukça zayıf bir şekilde belgelendi, ancak bu gerçekten ihtiyacınız olan şey. Kovanınız herkese (medya için istediğiniz) herkes tarafından görüntülenebilirse, kimlik doğrulama parametrelerini kaldırır. – Alper

2

İşleri: AWS_QUERYSTRING_AUTH = False kullanılarak

bu https://github.com/mstarinteractive/django-s3storage

from myapp.s3storage import S3BotoStorage 
from django.contrib.staticfiles.storage import CachedFilesMixin 


class CachedStaticS3BotoStorage(CachedFilesMixin, S3BotoStorage): 

    """Extends S3BotoStorage to save static files with hashed filenames.""" 
    pass 
StaticRootS3BotoStorage = lambda: CachedStaticS3BotoStorage(location='static') 
0

Garip bir davranış: Google Dokümanlar previewer çalışmak ve olmadan önizlemesini gösterir Parametreler, ancak boto imzayı eklerse önizleme kullanılamaz.

<iframe src="{% trans "https://docs.google.com/viewer?embedded=true&amp;url=" %}{{ document.file.url }}" width="451" height="390" style="border: none;"></iframe>

bir şey eksik olması gerekir.