Tôi vừa bắt đầu lưu trữ hình ảnh do người dùng tải lên trên S3 của Amazon. Nó khá đẹp vì nó đã xử lý vấn đề lưu trữ của tôi. Tuy nhiên, tôi đang vật lộn khi nói đến việc có bộ nhớ cache của trình duyệt hình ảnh.cách lấy 304 cho hình ảnh được lưu trữ trên amazon s3 khi sử dụng django-storages trên ứng dụng django?
Tôi đang sử dụng django-storages. Trong tài liệu của họ, họ chỉ định rằng bạn có thể đặt mọi thứ vào tiêu đề yêu cầu cho hình ảnh bằng cách đặt biến AWS_HEADER trong cài đặt của bạn. Tôi đang làm điều đó và không có kết quả.
Về cơ bản khi ứng dụng yêu cầu (các) hình ảnh, tôi nhận được 200 EVERY TIME. ARG ... khi tôi đưa trình duyệt thẳng đến hình ảnh (sao chép và dán liên kết vào một cửa sổ mới), tôi nhận được 200 sau đó là 304 mỗi lần sau đó.
Rất bực bội vì nó tải xuống lại hình ảnh mỗi lần. Một số trang có tối đa 25 hình thu nhỏ nhỏ và chúng tải xuống mọi thứ mỗi khi trang được tải lại.
Tôi đang phân phát tệp tĩnh của mình bằng cách sử dụng các tệp tĩnh djangos và chúng hoạt động đúng cách. Tôi nhận được 200, sau đó 304 sau khi tệp được lưu vào bộ nhớ cache.
đây là thiết lập AWS của tôi trong settings.py
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = '***'
AWS_SECRET_ACCESS_KEY = '***'
AWS_STORAGE_BUCKET_NAME = 'foobar_uploads'
AWS_HEADERS = {
'Expires': 'Thu, 15 Apr 2020 20:00:00 GMT',
'Cache-Control': 'max-age=86400',
}
AWS_CALLING_FORMAT = CallingFormat.SUBDOMAIN
đây là những yêu cầu và đáp ứng tiêu đề cho khi ứng dụng yêu cầu hình ảnh: (i đã thay thế những gì tôi cảm thấy có thể là thông tin nhạy cảm với '* ')
##request##
GET /user_uploads/*****/2012/3/17/14/46/thumb_a_28_DSC_0472.jpg?Signature=FVR6T%2BXFwHMmdQ9K3n7Ppp7QxoY%3D&Expires=1332023525&AWSAccessKeyId=***** HTTP/1.1
Host: *****_user_uploads_sandbox.s3.amazonaws.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11
Accept: */*
Referer: http://localhost:8000/m/my-photos/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
##response##
HTTP/1.1 200 OK
x-amz-id-2: Hn3S+3gmeLHIjKCpz+2ocE6aPsLCVHh56jJYTsPHwxU98y89x+9X1Ml202evBUHT
x-amz-request-id: 528CEB880CA89AD3
Date: Sat, 17 Mar 2012 21:32:06 GMT
Cache-Control: max-age=86400
Expires: Thu, 15 Apr 2020 20:00:00 GMT
Last-Modified: Sat, 17 Mar 2012 20:46:29 GMT
ETag: "a3bc70e0c3fc0deb974edf95668e9030"
Accept-Ranges: bytes
Content-Type: image/jpeg
Content-Length: 8608
Server: AmazonS3
đây là những tiêu đề yêu cầu/đáp ứng cho khi tôi tự đề nghị hình ảnh bằng cách sao chép và dán liên kết đến hình ảnh:
##request##
GET /user_uploads/*****/2012/3/17/14/46/thumb_a_28_DSC_0472.jpg?Signature=FVR6T%2BXFwHMmdQ9K3n7Ppp7QxoY%3D&Expires=1332023525&AWSAccessKeyId=***** HTTP/1.1
Host: porlio_user_uploads_sandbox.s3.amazonaws.com
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
If-None-Match: "a3bc70e0c3fc0deb974edf95668e9030"
If-Modified-Since: Sat, 17 Mar 2012 20:46:29 GMT
##response##
HTTP/1.1 304 Not Modified
x-amz-id-2: FZH0imrbNxziMznhl5zAoo38CaM7Z+TFnd8R6HtTYB3eTmVpCih+1IniKaliRo18
x-amz-request-id: 3CACF77FBB39D088
Date: Sat, 17 Mar 2012 21:33:22 GMT
Last-Modified: Sat, 17 Mar 2012 20:46:29 GMT
ETag: "a3bc70e0c3fc0deb974edf95668e9030"
Server: AmazonS3
Tôi thấy có một số khác biệt như "Nếu không có sự phù hợp" hoặc "Nếu được sửa đổi-Từ:". Tôi nghĩ rằng nếu tôi thiết lập chúng, thì nó sẽ hoạt động như tôi muốn.
Có cách nào dễ dàng để thực hiện việc này không?
Cảm ơn bạn đã trợ giúp!
EDIT 1: Tôi đọc bài viết này và không thể dịch nó rất tốt .. http://coder.cl/2012/01/django-and-amazon-s3/comment-page-1/
Cảm ơn bạn rất nhiều !!! Tôi đã chiến đấu với điều này bao giờ hết !! Làm việc trong lần thử đầu tiên của tôi. Wow Tôi là một người cắm trại hạnh phúc! – teewuane