Object Storage lưu trữ ảnh là giải pháp được nhiều doanh nghiệp lựa chọn để quản lý hàng ngàn, hàng triệu ảnh sản phẩm, portfolio, hoặc tài liệu. Nhưng không phải ai cũng biết cách sử dụng Object Storage lưu trữ ảnh sao cho hiệu quả: ảnh nhẹ hơn (tiết kiệm chi phí), tải nhanh (khách hàng không chờ), bảo mật (không bị mất), dễ tìm kiếm. Bài viết này hướng dẫn từng bước cụ thể, không cần chuyên môn kỹ thuật.
Object Storage lưu trữ ảnh là gì?
Object Storage lưu trữ ảnh là cách sử dụng Object Storage để lưu các file hình ảnh thay vì lưu trực tiếp trên Cloud Server hoặc ổ cứng. Mỗi ảnh được lưu dưới dạng một object, đi kèm metadata và một tên định danh (key) riêng để dễ quản lý và truy xuất.
Khi cần sử dụng, website hoặc ứng dụng có thể lấy ảnh thông qua API hoặc HTTP/HTTPS. Nhờ đó, hình ảnh có thể được lưu trữ tập trung, mở rộng dung lượng linh hoạt và kết hợp với CDN để tăng tốc độ phân phối.
Cách lưu trữ này đặc biệt phù hợp với website, thương mại điện tử và các hệ thống có số lượng hình ảnh lớn.
Object Storage phù hợp lưu những loại ảnh nào?
Object Storage có thể lưu nhiều loại hình ảnh khác nhau, đặc biệt phù hợp với các hệ thống có nhu cầu lưu trữ lớn và thường xuyên phát sinh dữ liệu mới.
- Ảnh sản phẩm: Hình ảnh sản phẩm trên website bán hàng, e-commerce.
- Ảnh website/blog: Thumbnail, hình minh họa, ảnh bài viết.
- Ảnh marketing: Banner, poster, hình ảnh quảng cáo và nội dung campaign.
- Ảnh người dùng upload: Ảnh đại diện, ảnh hồ sơ hoặc hình ảnh do khách hàng tải lên.
- Video và media: Ngoài ảnh, Object Storage còn có thể lưu video, file thiết kế và các dữ liệu media khác.
Nhờ khả năng mở rộng linh hoạt, Object Storage phù hợp cả với website nhỏ và các hệ thống có hàng trăm nghìn hoặc hàng triệu file media.

Chuẩn bị ảnh trước khi lưu trong Object Storage
Ảnh không nén thường rất lớn, tốn tiền lưu trữ và khiến khách hàng chờ lâu khi tải. Cách tốt nhất là nén ảnh trước khi đưa lên hệ thống thuê S3 Object Storage. Điều này không chỉ giảm chi phí hàng chục triệu đồng mỗi năm, mà còn giúp khách hàng tải ảnh nhanh hơn, có tỷ lệ thoát trang thấp hơn, doanh số cao hơn.
1. Tại sao phải nén ảnh trước khi lưu?
Ảnh không nén thường rất lớn. Ví dụ một bức ảnh sản phẩm chụp từ điện thoại = 2-5MB. Một cửa hàng bán hàng online có 10.000 sản phẩm, mỗi sản phẩm 5 ảnh (gốc, phía trước, phía sau, chi tiết, size chart) = 10.000 × 5 = 50.000 ảnh.
Nếu không nén:
- 50.000 ảnh × 2MB = 100GB
- Chi phí lưu trữ 12 tháng: 100GB × 900đ/GB × 12 = 10,8 triệu đồng/năm
- Tốc độ tải: mỗi ảnh 2MB, khách hàng phải chờ 2-3 giây mỗi trang (rất chậm)
Nếu nén 90%:
- 50.000 ảnh × 200KB = 10GB
- Chi phí lưu trữ 12 tháng: 10GB × 900đ/GB × 12 = 1,08 triệu đồng/năm (tiết kiệm 9,7 triệu!)
- Tốc độ tải: mỗi ảnh 200KB, tải xong trong 0,5 giây (khách hàng vui)
2. Cách nén ảnh đơn giản không cần code
Không cần học code hay phần mềm phức tạp. Có 3 cách nén ảnh dễ dàng:
Cách 1: Dùng tool online miễn phí
- Vào website Tinypng.com hoặc Compressor.io
- Kéo thả ảnh vào, công cụ sẽ tự động nén
- Tải ảnh đã nén xuống (thường nhỏ 70-80% mà chất lượng gần như nguyên bản)
- Thích hợp: nén 10-100 ảnh
Cách 2: Dùng Photoshop (nếu có)
- Mở ảnh trong Photoshop
- Vào File, chọn Export As, chọn định dạng JPEG và đặt Quality = 75-80
- Sau khi Export, dung lượng ảnh giảm 70-80% mà mắt thường gần như không nhận ra khác biệt
Cách 3: Dùng ImageMagick (nếu có IT team)
- Script chạy tự động nén 10.000 ảnh trong 30 phút
- Cách này phù hợp doanh nghiệp lớn
3. Định dạng ảnh phù hợp
Không phải định dạng ảnh nào cũng phù hợp với mọi nhu cầu lưu trữ. Việc lựa chọn đúng định dạng giúp cân bằng giữa chất lượng hình ảnh, dung lượng file và tốc độ tải. Với ảnh sử dụng trên website, nên ưu tiên những định dạng có khả năng nén tốt nhưng vẫn giữ được chất lượng hiển thị.
- JPEG: Phổ biến, size nhỏ (2MB), phù hợp ảnh sản phẩm, photo
- PNG: Chất lượng cao nhưng size lớn (5MB), phù hợp logo, icon (dùng ít)
- WebP: Mới, size nhỏ nhất (50% so JPEG), tải nhanh nhất (dùng nếu browser hỗ trợ)
Lựa chọn đơn giản: JPEG cho 80% ảnh (sản phẩm, ảnh), PNG/WebP 20% (logo, icon).
4. Khi nào cần nén ảnh?
Tốt nhất, doanh nghiệp nên đưa bước nén ảnh vào quy trình xử lý ngay trước khi upload lên Object Storage. Cách làm này giúp mọi ảnh được kiểm soát dung lượng từ đầu, thay vì phải xử lý lại sau khi dữ liệu đã được lưu trữ.
Quy trình thực hiện có thể đơn giản như sau:
- Nhân viên chụp ảnh sản phẩm (2-5MB)
- Nén ảnh bằng tool online (30 giây)
- Upload lên Object Storage (đã nén 200KB)
Tải ảnh lên Object Storage nhanh hay chậm?
Sau khi nén ảnh xong, bước tiếp theo là tải ảnh lên Object Storage. Tùy vào số lượng ảnh, từ vài file đến hàng chục nghìn file, cách tải cũng khác nhau. Nếu chỉ upload 1 đến 2 ảnh, bạn có thể dùng giao diện web. Với trường hợp migrate 50.000 ảnh từ server cũ, nên sử dụng CLI để tải song song. Hiểu rõ cách tải nhanh sẽ giúp bạn tiết kiệm thời gian hàng chục giờ.
1. Tải 1-2 ảnh trên giao diện website
Với số lượng ảnh ít, bạn không cần sử dụng công cụ dòng lệnh. Giao diện web của Object Storage phù hợp với những công việc upload hằng ngày và dễ thao tác ngay cả với nhân viên không có chuyên môn kỹ thuật.
Nhân viên upload ảnh sản phẩm mỗi ngày 1-2 cái. Cách làm:
- Đăng nhập portal Object Storage (portal.lanit.com.vn)
- Click “Upload”
- Chọn file ảnh từ máy rồi xác nhận
- Hoàn tất
Thời gian: 1 phút/ảnh. Phù hợp upload từng ảnh.

2. Tải 100+ ảnh cùng lúc (Batch Upload)
Khi số lượng ảnh tăng lên hàng trăm hoặc hàng chục nghìn file, cách upload thủ công sẽ nhanh chóng trở thành điểm nghẽn. Trong trường hợp này, nên chuyển sang batch upload bằng CLI để tự động hóa và rút ngắn đáng kể thời gian di chuyển dữ liệu.
Kịch bản: di chuyển dữ liệu từ file server cũ (50GB = 50.000 ảnh) sang Object Storage. Không thể click 50.000 lần (mất 2 tháng!). Cần tải nhanh.
Cách nhanh: Sử dụng CLI (command line)
- Công cụ phổ biến: rclone, aws-cli, s3cmd
- Tải song song 20 ảnh mỗi lượt, thời gian hoàn thành 50.000 ảnh khoảng 3-4 giờ
- Thời gian setup: 30 phút (IT team)
Ví dụ:
rclone sync /local/images s3://bucket-nameUpload 50.000 ảnh (50GB):
- Portal web: 50 phút/ảnh × 50.000 = 2.500 giờ = 104 ngày, không khả thi
- CLI chạy song song: 50.000 ảnh trong khoảng 3 giờ
3. Bị mất kết nối mạng khi đang upload ảnh
Một vấn đề thường gặp khi upload số lượng lớn dữ liệu là kết nối mạng bị gián đoạn giữa chừng. Nếu công cụ không hỗ trợ tiếp tục phiên upload, toàn bộ quá trình có thể phải thực hiện lại từ đầu.
Ví dụ, bạn đang upload 100 ảnh (đến 50%) mạng bị ngắt. Nếu không có cơ chế tiếp tục, bạn có thể phải bắt đầu lại từ đầu. Nhưng Object Storage hỗ trợ “resume” (tiếp tục từ chỗ cắt).
Cách làm: dùng tool hỗ trợ resume (rclone, aws-cli). Ở lần tiếp theo, công cụ chỉ cần upload phần dữ liệu còn lại.
Tải ảnh nhanh hơn cho khách hàng
Ảnh đã upload lên Object Storage, nhưng khách hàng tải ảnh từ website vẫn chậm. Lý do: khách ở TP.HCM trong khi server Object Storage ở Hà Nội nên khoảng cách địa lý khiến tốc độ tải chậm. Giải pháp: dùng CDN (Content Delivery Network) = mạng server phân tán ở nhiều thành phố. Ảnh được phân phối từ CDN gần khách hàng nên tốc độ tải có thể nhanh hơn đáng kể. Đây là bước tối ưu tải ảnh quan trọng mà nhiều doanh nghiệp bỏ qua.
1. CDN là gì?
CDN là một lớp phân phối nội dung nằm giữa người dùng và Object Storage. Thay vì mọi yêu cầu đều phải truy cập trực tiếp vào nơi lưu trữ gốc, CDN có thể lưu bản sao tạm thời của ảnh tại các máy chủ gần người dùng hơn.
Cách hoạt động:
Quy trình phân phối ảnh qua CDN có thể hình dung đơn giản như sau:
- LANIT S3 Object Storage ở Hà Nội + TP.HCM
- Sau khi thiết lập, CDN sẽ cache ảnh tại các vị trí phân phối phù hợp
- Khách ở TP.HCM sẽ nhận ảnh từ server gần nhất tại TP.HCM, với thời gian tải khoảng 50ms
- Khách ở Hà Nội sẽ nhận ảnh từ server tại Hà Nội, với thời gian tải khoảng 50ms
- Nếu server tại TP.HCM gặp lỗi, hệ thống có thể tự động chuyển sang server tại Hà Nội
2. Setup CDN + Object Storage (đơn giản)
Việc kết nối CDN với Object Storage không quá phức tạp. Sau khi xác định bucket làm nguồn dữ liệu, bạn có thể cấu hình CDN theo các bước dưới đây.
Chỉ cần 5 bước:
- Chọn CDN provider (Cloudflare, AWS CloudFront, hoặc LANIT CDN partner)
- Login CDN dashboard
- Nhập Object Storage bucket URL làm “origin”
- Lưu cấu hình để CDN tự động cache ảnh
- Thay URL trong website từ “s3.lanit.com.vn/bucket/image.jpg” thành “cdn.lanit.com.vn/bucket/image.jpg”
Cách bảo mật hình ảnh trên Object Storage
Không phải tất cả hình ảnh lưu trên Object Storage đều cần được công khai. Ảnh sản phẩm, banner hay portfolio có thể được truy cập trực tiếp từ website, trong khi hóa đơn, tài liệu nội bộ hoặc giấy tờ định danh cần được giới hạn quyền truy cập.
Vì vậy, trước khi đưa ảnh vào sử dụng, doanh nghiệp nên xác định rõ ảnh nào được phép public và ảnh nào phải để private. Sau đó, thiết lập quyền truy cập phù hợp cho từng nhóm dữ liệu.
1. Phân loại ảnh Public và Private
Cách đơn giản nhất để quản lý quyền truy cập là chia ảnh thành hai nhóm: Public và Private.
Ảnh Public là những dữ liệu doanh nghiệp chủ động cho phép người dùng truy cập trực tiếp. Nhóm này thường bao gồm:
- Ảnh sản phẩm trên website
- Portfolio giới thiệu sản phẩm hoặc dịch vụ
- Banner và hình ảnh quảng cáo
Ngược lại, ảnh Private chứa dữ liệu cần kiểm soát quyền truy cập. Chỉ người dùng hoặc hệ thống được cấp quyền mới có thể xem hoặc tải những hình ảnh này.
- Hóa đơn của khách hàng
- Tài liệu và hình ảnh nội bộ
- Ảnh giấy tờ định danh như ID hoặc passport
- Hình ảnh chứa dữ liệu bệnh nhân trong lĩnh vực y tế
Việc phân loại ngay từ đầu giúp doanh nghiệp tránh tình trạng đưa nhầm dữ liệu nhạy cảm lên một bucket hoặc URL công khai.

2. Cách thiết lập quyền truy cập cho ảnh
Nếu sử dụng Object Storage có giao diện quản trị, doanh nghiệp có thể thiết lập quyền truy cập trực tiếp trên portal mà không cần viết code. Quy trình cơ bản có thể thực hiện như sau:
- Bước 1: Chọn hình ảnh cần thiết lập quyền
- Bước 2: Mở phần Permission hoặc Access Control
- Đây là khu vực dùng để xác định ai được phép truy cập vào file.
- Bước 3: Chuyển ảnh sang chế độ Private. Sau khi đặt ở chế độ Private, chỉ owner, admin hoặc những tài khoản được cấp quyền mới có thể truy cập file.
- Bước 4: Cấp quyền truy cập tạm thời khi cần. Trong trường hợp khách hàng cần xem một hóa đơn cụ thể, không nhất thiết phải chuyển file sang Public. Doanh nghiệp có thể tạo Signed URL, tức đường dẫn truy cập có thời hạn.
Ví dụ, một Signed URL có thể được cấu hình để:
- Admin tạo đường dẫn có thời hạn 24 giờ.
- Gửi đường dẫn cho đúng khách hàng qua email.
- Khách hàng sử dụng đường dẫn để xem hoặc tải hóa đơn.
- Khi hết thời hạn, đường dẫn tự động mất hiệu lực.
Cách này giúp giữ file ở chế độ Private nhưng vẫn cho phép chia sẻ dữ liệu một cách có kiểm soát.
Cách đặt tên ảnh
Có 10.000 ảnh, làm sao tìm nhanh? Cần tổ chức logic: tên file rõ ràng, folder có cấu trúc, metadata tagging. Cách organize tốt giúp bạn quản lý ảnh dễ dàng, tìm kiếm nhanh, không bao giờ lộn xộn. Ngược lại, để ảnh lung tung sẽ mất cả giờ để tìm 1 bức ảnh, tốn năng suất.
1. Cách đặt tên file
Tên file là yếu tố đầu tiên giúp nhân viên nhận biết nội dung của ảnh khi quản lý số lượng lớn dữ liệu. Một quy tắc đặt tên thống nhất sẽ giúp giảm thời gian tìm kiếm và hạn chế tình trạng trùng hoặc nhầm file. Cách đơn giản nhất để đặt tên ảnh như sau:
- Tên file mô tả nội dung (ai cũng hiểu ngay)
- Không dùng tiếng Việt (tránh lỗi encoding)
- Không dùng space hoặc ký tự đặc biệt (dùng underscore: _ hoặc hyphen: -)
- Thêm date nếu ảnh hay thay đổi (invoice_20240115 rõ ràng hơn invoice)
2. Các phân Folder
Khi số lượng ảnh tăng lên hàng chục nghìn file, cách tổ chức thư mục có ảnh hưởng lớn đến khả năng quản lý dữ liệu. Nên xây dựng cấu trúc nhất quán ngay từ đầu thay vì để tất cả ảnh trong cùng một bucket mà không có quy ước. Folder ảnh nên để theo quy tắc: năm/tháng/loại/chi tiết/ để dễ phân biệt hệ thống ảnh.
3. Cách tag ảnh
Folder và tên file giúp tổ chức dữ liệu theo cấu trúc, còn metadata bổ sung thêm thông tin mô tả cho từng object. Đây là cách hữu ích khi doanh nghiệp cần phân loại hoặc tìm kiếm ảnh dựa trên nhiều thuộc tính khác nhau.
Ngoài folder + filename, Object Storage còn hỗ trợ “metadata” = thông tin mô tả.
Metadata đặc biệt hữu ích khi doanh nghiệp cần lọc hoặc phân nhóm ảnh theo nhiều tiêu chí. Một số ví dụ có thể thấy rõ qua các trường hợp sau:
- Search “red shoes” để tìm các ảnh có tag “color=red” và “product_type=shoes”, nhanh hơn so với tìm thủ công trong folder
- Filter với điều kiện “price < 300000” để tìm các ảnh có giá thấp hơn mức quy định
- Tổ chức ảnh theo supplier để thuận tiện quản lý chất lượng
Chi phí lưu ảnh trên hệ thống Object Storage
Chi phí lưu ảnh trên Object Storage thường gồm ba thành phần chính: dung lượng lưu trữ (Storage), dữ liệu truyền ra ngoài (Egress) và số lượng request API. Trong đó, Storage là khoản chi phí cơ bản, còn Egress và Request có thể ảnh hưởng đáng kể nếu website có lượng truy cập lớn.
Chi phí Storage được tính dựa trên dung lượng và thời gian lưu trữ:
Chi phí = Dung lượng × Đơn giá/GB/tháng × Số tháng
Ví dụ, 100GB ảnh được lưu trong 12 tháng với giá 900 đồng/GB/tháng sẽ tốn 1,08 triệu đồng/năm.
Egress phát sinh khi người dùng tải dữ liệu từ Object Storage về. Một số nhà cung cấp tính phí theo GB dữ liệu truyền ra ngoài. Request API cũng có thể phát sinh chi phí dựa trên số lần upload, download hoặc truy vấn dữ liệu.
Do đó, khi lựa chọn Object Storage, doanh nghiệp nên tính tổng chi phí sử dụng thay vì chỉ so sánh giá lưu trữ. Nén ảnh, sử dụng CDN và thiết lập Lifecycle Policy là những cách phổ biến để giảm chi phí.
Với LANIT S3 Object Storage, doanh nghiệp có thể dễ dàng dự toán ngân sách hơn nhờ chính sách không tính phí Egress và Request API, bên cạnh chi phí lưu trữ.
Cách khôi phục ảnh bị xoá nhầm
Ảnh có thể bị xóa nhầm do thao tác của nhân viên, lỗi hệ thống hoặc ransomware. Với Object Storage, bạn có thể hạn chế rủi ro này bằng 3 tính năng: Versioning, Immutability và Replication.
1. Versioning – lưu lại các phiên bản cũ
Khi bật Versioning, mỗi lần ảnh được cập nhật, phiên bản trước đó vẫn được giữ lại. Ví dụ, product_shoes.jpg có phiên bản 1, 2 và 3. Nếu phiên bản mới bị xóa hoặc chỉnh sửa nhầm, bạn có thể khôi phục lại phiên bản cũ.
Đây là cách phù hợp để xử lý những trường hợp xóa hoặc chỉnh sửa ảnh nhầm.
2. Immutability – khóa ảnh để không thể xóa hoặc sửa
Immutability (Object Lock) cho phép khóa ảnh trong một khoảng thời gian nhất định. Trong thời gian này, file không thể bị xóa hoặc thay đổi, kể cả bởi tài khoản quản trị.
Tính năng này đặc biệt hữu ích khi bảo vệ backup và dữ liệu quan trọng trước ransomware.
3. Replication – tạo bản sao ở nơi khác
Replication tự động sao chép dữ liệu sang một hệ thống hoặc datacenter khác. Nếu nơi lưu trữ chính gặp sự cố, bạn vẫn có một bản sao để khôi phục.
Ví dụ, dữ liệu được lưu tại datacenter Hà Nội có thể được sao chép sang TP.HCM, giúp giảm rủi ro mất dữ liệu khi xảy ra sự cố tại một địa điểm.
So sánh giữa Object Storage và Cloudinary
Khi lưu trữ hình ảnh cho website hoặc e-commerce, doanh nghiệp thường có hai lựa chọn: tự quản lý Object Storage hoặc sử dụng dịch vụ managed như Cloudinary.
- Object Storage: Phù hợp với doanh nghiệp có nhiều hình ảnh, có đội ngũ IT và muốn tối ưu chi phí. Object Storage cho phép chủ động về dữ liệu, dung lượng và cách vận hành, nhưng doanh nghiệp cần tự quản lý CDN, tối ưu ảnh và backup.
- Cloudinary: Phù hợp với startup, SMB hoặc doanh nghiệp muốn triển khai nhanh. Cloudinary có sẵn các tính năng resize, tối ưu, chuyển đổi định dạng và CDN nên không cần tự xây dựng nhiều thành phần. Đổi lại, chi phí cao hơn và mức độ phụ thuộc vào nhà cung cấp lớn hơn.
Doanh nghiệp e-commerce quy mô vừa có thể dùng Object Storage để lưu ảnh chính và Cloudinary cho các ảnh cần resize, tối ưu hoặc xử lý nhanh. Đây là cách cân bằng giữa chi phí và tính năng.
Object Storage là giải pháp phù hợp để lưu trữ ảnh với số lượng lớn, nhờ khả năng mở rộng linh hoạt, chi phí tối ưu và hỗ trợ các tính năng như phân quyền, backup, versioning và replication. Khi kết hợp với CDN, ảnh còn có thể được phân phối nhanh đến người dùng mà không làm tăng tải cho Cloud Server.












