Bài viết này không trích dẫn bất kỳ "con số trung bình ngành" nào. Dữ liệu nén trong bài là từ các bài kiểm tra thực tế do chúng tôi tự chạy, công thức tính chi phí đưa ra là công thức, bạn chỉ cần thay đơn giá trên hóa đơn của mình để tính kết quả.
Đối với nhiều người, khi xem hóa đơn đám mây mỗi tháng, hầu hết chỉ nhìn tổng số: hơi nhiều hơn tháng trước, vẫn trong ngân sách, cứ thế trôi qua.
Nhưng nếu mở rộng hóa đơn, phân tích theo sản phẩm, nhiều trang web, ứng dụng mini và nền tảng nội dung sẽ phát hiện ra hai hạng mục đứng đầu thường là:
- Đối tượng lưu trữ (Object Storage): Tính phí lưu trữ mỗi tháng theo GB
- CDN / lưu lượng mạng: Tính phí lưu lượng xuống mỗi GB
Và trong hai hạng mục này, phần chiếm chỗ thường là hình ảnh.
Vấn đề là, một lượng byte đáng kể trong những hình ảnh này, người dùng hoàn toàn không thấy được, nhưng bạn lại phải trả tiền cho chúng mỗi tháng.
Một. "Đã nén khi tải lên" không đồng nghĩa với đã nén đủ
Nhiều đội ngũ sẽ nói: "Chúng tôi đã nén khi tải lên."
Chúng tôi đã kiểm tra kỹ tình huống này. Mẫu là một trang web cho phép người dùng tải lên hình ảnh, khi lưu trữ đã tự thực hiện một vòng nén thông thường: 78 thư mục, 4624 hình ảnh, tổng cộng 1.41 GB.
| Dung lượng | So với gốc | |
|---|---|---|
| Tệp gốc đã được nén bởi trang web | 1.41 GB | — |
| Gói vào zip | 1.41 GB | -0.2% |
| Nén lại bởi ImgZilla | 0.75 GB | -46.8% |
Trên nền tảng "đã nén", chúng ta tiết kiệm gần một nửa. Và trong 4624 hình ảnh, mỗi hình ảnh đều có thể tiếp tục nén, không có hình nào là "đã đến nơi, bỏ qua luôn".
Lý do không phức tạp: Đa số nén khi lưu trữ chỉ thiết lập một tham số chất lượng thống nhất, hoặc giới hạn kích thước, thuộc xử lý một lần khá thận trọng, chưa tận dụng hết không gian mã hóa của mỗi định dạng.
Nếu thư viện hình ảnh của bạn là JPEG trực tiếp từ máy ảnh, bản vẽ thiết kế xuất ra, hoặc hình ảnh gốc do vận hành tải lên, thì dung lượng sẽ lớn hơn. Chúng tôi đã kiểm tra trên 32188 hình ảnh JPEG trực tiếp từ máy ảnh, tổng thể giảm 76.8%.
Hai. Phí lưu trữ là phép cộng, phí lưu lượng là phép nhân
Đây là điểm dễ bị bỏ qua nhất.
- Phí lưu trữ: Một tấm hình được lưu trong bucket, tính phí mỗi tháng dựa trên dung lượng của nó
- Phí lưu lượng: Một tấm hình được mở mỗi lần, tính phí thêm một lần nữa dựa trên dung lượng của nó
Vì vậy, một banner trang chủ thừa 300 KB dữ liệu không hiệu quả, hầu như không thấy trong hóa đơn lưu trữ, nhưng mỗi ngày được mở 100.000 lần, thì trên hóa đơn lưu lượng là mỗi ngày thêm khoảng 29 GB.
Hình ảnh càng phổ biến, tiền trả trắng càng nhiều. Và những hình ảnh phổ biến nhất, đúng là những vị trí thường được "tải lên hình ảnh gốc" như hình trang chủ, hình chính của sản phẩm, hình đầu bài viết.
Ba. Tính một hóa đơn riêng của bạn
Đừng tin vào bất kỳ ước tính nào, lấy hóa đơn tháng trước của bạn, thay vào hai công thức dưới đây:
Lợi nhuận lưu trữ hàng tháng ≈ Tổng dung lượng hình ảnh(GB) × Tỷ lệ nén × Đơn giá lưu trữ(yên/GB·tháng)
Lợi nhuận lưu lượng hàng tháng ≈ Tổng lưu lượng xuống hình ảnh hàng tháng(GB) × Tỷ lệ nén × Đơn giá lưu lượng(yên/GB)
Tỷ lệ nén có thể ước tính thận trọng trước là 40% (thấp hơn tỷ lệ 46.8% chúng tôi đo được trên mẫu "đã nén"), sau khi chạy xong hình ảnh của mình thì đổi thành con số thực tế.
Ví dụ minh họa (đơn giá là giả định, hãy thay bằng con số trên hóa đơn của bạn):
| Dự án | Giá trị |
|---|---|
| Dung lượng lưu trữ hình ảnh | 500 GB |
| Tổng lưu lượng xuống hình ảnh hàng tháng | 10 TB |
| Đơn giá lưu trữ (giả định) | 0.12 yên/GB·tháng |
| Đơn giá lưu lượng (giả định) | 0.20 yên/GB |
- Lưu trữ: 500 × 40% × 0.12 ≈ 24 yên/tháng
- Lưu lượng: 10240 × 40% × 0.20 ≈ 819 yên/tháng
Có thể thấy, đại đa số nằm ở lưu lượng. Tiết kiệm lưu trữ là con số nhỏ, tiết kiệm lưu lượng mới là khoản tiền thực sự. Hơn nữa, khoản tiền này được trả mỗi tháng, nếu không xử lý hình ảnh thì sẽ cứ thế tiếp tục.
Vẫn còn một số lợi ích không thấy trên hóa đơn: trang tải nhanh hơn, người dùng di động tiêu tốn ít dữ liệu hơn, chỉ số LCP đẹp hơn, ứng dụng mini có thể nén gọn gàng vào trong giới hạn.
Bốn. Tại sao biết nên nén mà vẫn không ai làm?
Chúng tôi đã hỏi nhiều lập trình viên và chủ trang web, câu trả lời cơ bản có ba:
1. Sợ thay đổi đường dẫn.
Công cụ nén trực tuyến truyền thống yêu cầu "tải lên → tải xuống → đổi tên → thay thế → thay đổi tham chiếu trong code", với dự án hàng nghìn hình ảnh, không ai dám động vào.
2. Sợ chất lượng hình ảnh bị lỗi.
Sau khi nén bị người thiết kế, vận hành hoặc sếp nói "hình mờ rồi", không ai muốn chịu trách nhiệm.
3. Quá phức tạp.
Thư mục lồng nhau, xử lý từng cái không khả thi, viết script又要调参数、处理各种格式.
ImgZilla được tạo ra để giải quyết ba vấn đề này:
- Nén tại chỗ: Nén xong thay thế trực tiếp tệp gốc, tên tệp, cấu trúc thư mục hoàn toàn không đổi, tham chiếu trong code không cần sửa một câu nào
- Không mất hình ảnh: PNG, SVG là thực sự không mất; JPEG, WebP, AVIF, HEIC điều chỉnh riêng từng định dạng, giữ trong phạm vi không thể phân biệt bằng mắt thường. Có so sánh chia đôi, có thể phóng to đến pixel thực tế để tự kiểm tra
- Chỉ cần kéo một thư mục vào: Xử lý đệ quy tất cả thư mục con, không cần chọn tệp, không cần điều chỉnh thanh trượt
- Xử lý hoàn toàn trên máy cục bộ: Tài nguyên nội bộ, hình ảnh sản phẩm chưa công bố không cần tải lên máy chủ bên thứ ba
Năm. Quy trình thực tế để "giảm cân" cho bucket
Nếu hình ảnh của bạn đã nằm trong đối tượng lưu trữ, quy trình大致 như sau:
- Đồng bộ hóa xuống máy cục bộ: Sử dụng các công cụ như
rclone,ossutil,coscmd,aws s3 sync, kéo thư mục hình ảnh xuống Mac - Lưu một bản sao trước: Đương nhiên, đây là thói quen tốt, không phải vì công cụ không tin cậy
- Kéo vào ImgZilla: Kéo cả thư mục vào, chờ nó chạy xong
- Đồng bộ hóa ngược lên bucket: Sử dụng cùng công cụ để tải lên đè, đường dẫn không đổi
- Làm mới bộ nhớ đệm CDN: Thực hiện làm mới thư mục hình ảnh, để các nút cạnh nhận được tệp mới
Đừng bỏ qua bước 5. Nếu không làm mới, các nút CDN sẽ tiếp tục phân phối tệp cũ, phí lưu lượng sẽ chỉ giảm xuống sau khi bộ nhớ đệm hết hạn.
Sáu. Lưu ý trung thực
- ImgZilla hiện chỉ có phiên bản macOS (yêu cầu macOS 12.3 trở lên), không có phiên bản Windows
- Ngoài PNG và SVG, các định dạng khác là không mất hình ảnh, không phải không mất ở mức pixel. Nếu hoạt động của bạn yêu cầu hình ảnh không đổi hoàn toàn về pixel (ví dụ hình ảnh y tế, tài liệu cần so sánh tỷ lệ pixel), vui lòng không mã hóa lại các tệp loại này
- Tỷ lệ nén phụ thuộc vào hình ảnh. Tỷ lệ nén thực tế của từng tấm hình của chúng tôi dao động từ 32% đến 86%, khuyến nghị chọn một thư mục để chạy thử trước, xem con số thực tế rồi mới quyết định
Cuối cùng
Nhà cung cấp đám mây sẽ không nhắc nhở bạn rằng hình ảnh có thể nhỏ hơn, trên hóa đơn cũng không tách một dòng riêng "byte không hiệu quả".
Nhưng nó đang ở đó, tính phí mỗi tháng theo GB, tính phí thêm mỗi lần truy cập.
Kéo thư mục hình ảnh vào ImgZilla và chạy một lần, so sánh hóa đơn tháng sau.
👉 Tải xuống ImgZilla: https://imagetool.app/ImgZilla
