Câu hỏi Thay thế nhanh hơn cho manage.py collectstatic (phụ trợ lưu trữ w / s3boto) để đồng bộ hóa các tệp tĩnh với s3?


Tôi đã sử dụng S3BotoStorage của s3boto như các tệp phụ trợ tĩnh và đồng bộ hóa các tệp của tôi vào các nhóm aws s3 của tôi (dàn dựng và sản xuất) bằng cách sử dụng ./manage.py collectstatic. Nó hoạt động tốt. Tuy nhiên nó rất chậm. Ngoài các tệp tĩnh của riêng tôi (chỉ một vài) và quản trị viên django, tôi có một vài gói bên thứ ba với nhiều tệp tĩnh (grappelli, django-redactor). Và tập thể có thể trở lên 15 phút mỗi khi tôi chạy nó, tùy thuộc vào kết nối internet của tôi. Đối với những trường hợp tôi đang đồng bộ hóa với nhóm dàn dựng của mình và mọi thứ không hoàn toàn đúng, và tôi phải chỉnh sửa thứ gì đó và đồng bộ hóa lại, đó là một kẻ giết người lớn. Có bất kỳ lựa chọn thay thế tốt, nhanh, dễ đọc nào để đồng bộ hóa các tệp tĩnh với s3 không?


9
2018-05-29 03:55


gốc


chỉ tìm thấy một câu hỏi rất có liên quan: stackoverflow.com/questions/6618013/… - Ben Roberts


Các câu trả lời:


Tôi đã viết một ứng dụng Django có thể cắm được, dựa trên một djangosnippet, lưu trữ ETag của tệp từ xa và so sánh kiểm tra chached thay vì thực hiện tra cứu mọi lúc. Tôi mất khoảng từ 1m30s đến khoảng 10s mỗi cuộc gọi manage.py collectstatic cho một vài trăm tệp tĩnh. Kiểm tra nó ra ở đây: https://github.com/antonagestam/collectfast


32
2017-07-08 13:57



Chỉ cần nhìn thấy điều này. Kiểm tra nó ra và đi từ 10-15 phút đến 2:45. Sẽ thiết lập một tiền thưởng cho bạn, vì đây sẽ là một sự tăng năng suất lớn. Cảm ơn bạn đã dành thời gian trả lời và tạo plugin thu thập! Tuyệt vời. - Ben Roberts
Thực sự vui vì tôi có thể giúp bạn @BenRoberts! Cảm ơn những đóng góp. - antonagestam
với gunicorn, nó ném cho tôi một lỗi: [Errno 104] Kết nối reset bằng peer - avances123
@ avances123 Ý bạn là gì? Không thể nhìn thấy các lệnh quản lý gọi điện thoại có bất cứ điều gì với gunicorn để làm gì? - antonagestam
yea xin lỗi, chậm của nó và cho tôi ít nhất (ứng dụng django bình thường trong ec2) không sử dụng được. Tải lên tệp cũng bị gián đoạn vì quá trình tải xuống cũng chậm - avances123


Bộ AWS_PRELOAD_METADATA đến True trong cài đặt của bạn để nó tải trước tất cả các tệp trên s3 trước khi đồng bộ hóa và chỉ đồng bộ hóa các tệp chưa có ở đó (hoặc đã thay đổi).


4
2018-05-29 14:28



Thật không may tôi thấy không có sự khác biệt đáng chú ý với cài đặt này được kích hoạt. - Ben Roberts