Cách làm site ảnh nhờ người khổng lồ Google
Trong quá trình giải quyết vấn đề lưu trữ image của một bạn trong diễn đàn Cafemmo.club. Mình thấy chia sẻ của anh Sincos rất cặn kẽ và dày dặn kinh nghiệm nên đã lưu lại để tiện sau này tham khảo.
Cách đứng trên vai người khổng lồ Google để lưu Image cho site ảnh
Riêng mình khi crawl data mình luôn lưu info của page được crawl như url, link images…… nên khi cân nhắc dùng cách lưu trữ thì sẽ như sau:
– Google drive: Chủ yếu lưu những thứ không quan trọng – nếu bay acc thì có chỉ cần thay acc và code tự check không có thì sẽ tự tải lại và up lên. Cũng vì không muốn quấy phá site victim nhiều…… đơn giản mình là loại ký sinh nên không nên hại chủ thể. Ngoài ra khi lưu trên Google mình sẽ chọn extension là null –> hệ thống google không check data của file là gì nên hạn chế được vụ bản quyền này nọ.
– Server storage: Lưu dữ liệu quan trọng hoặc dữ liệu không có khả năng reCrawl khi bị mất (thường dữ liệu lấy từ nhiều nguồn hoặc nguồn không ổn định).
– Server cache: Dùng để phục vụ embed cho site và là nơi bộ đệm hạn chế request quá nhiều tới site victim hay google drive. Nhiều coder non cứ phang proxy cực đoan như mấy site truyện kia rất dễ gây khó chịu cho site nguồn –> hay bị chặn -> mất ổn định.Nếu tính toán và setup tốt thì chúng ta có thể đứng trên vai người khổng lồ. Có data ngang ngửa với người khổng lồ trong khi tài nguyên server hạn hẹp.
Cách đây hơn 1 năm mình có làm dịch vụ stream video cho các site phim khi google drive fix…. Khi đó chỉ có 1 cách là proxy là ổn định nên đã scale dịch vụ có lúc gần 500 con VPS 5$ trên DO để chạy. Thật là tuyệt vời với Port toàn ~~ 10Gbs của DO và khi đó DO chưa counting BW như hiện tại. Tuy nhiên đêm động phòng thường không kéo dài….. dc 2 tháng sau khi Google fix… dân streaming đổ về DO và CF quá nhiều có lúc 2 ông lớn này gần ngỏm vì lụt BW…… và sau đó là DO counting và tính thêm BW phát sinh…… CF thì limit ~~ 10TB/acc/day (vượt sẽ bị bóp chậm như rùa).
CF giới hạn BW và dung lượng cache cho mỗi domain nên phải phân tán ra.
Trước tớ làm dịch vụ hls streaming cũng dùng cách này.
Mà phải mỗi domain/acc CF nhé.
Tuy nhiên ảnh chắc ko tốn nhiều BW nên chắc cần ít hơn.
Mách cho 1 cách này nè:Mua 1 acc gg drive unlimited. Up hết lên đây.
Setup 1 vài con vps trên DO để cache. Ảnh nào có request thì hãy tải về cache trên vps. Lâu lâu xoá thư mục cache đi để code load mới từ gg drive về. Cộng với CF nữa là ổn.
Nếu muốn bảo vệ link ảnh tránh embed ké thì tạo 1 cái signature theo IP chỉ cần class A và B được rồi. Ku nào get link để embed sắc xuất user ko xem dc là khá cao. Chỉ cần thế thôi là chả ku nào dám embed ké đâu.
Đấy….. tất cả bí kip bao năm cũng chỉ có vậy.
By Sincos