WhyPik DocsVề trang chính

Chủ cửa hàng / Tra cứu

Storage cửa hàng và Object Storage

Chọn đúng kho file, hiểu quyền tải và cách hai mục dùng chung dung lượng tài khoản.

Nên dùng kho nào?

Storage cửa hàng phục vụ từng cửa hàng theo mẫu. Object Storage phục vụ website hoặc ứng dụng bạn tự xây trong Project. File được quản lý riêng theo từng mục; hai mục không phải hai phần dung lượng được cấp độc lập.

Storage cửa hàngObject Storage
Thuộc vềMột cửa hàng cụ thểMột Project
File thường dùngFile của cửa hàng, bộ cài và file bản phát hành sản phẩmẢnh, tài liệu và file của ứng dụng
Quyền tảiFile độc lập có thể bật liên kết công khai. Bản phát hành sản phẩm tuân theo trạng thái phát hành, yêu cầu đăng nhập hoặc quyền sử dụng sản phẩm.File công khai dùng liên kết tải; file riêng tư dùng quyền quản lý hoặc liên kết có thời hạn. Không tự kiểm tra việc mua hàng hay license.
Tích hợp APIAPI key giới hạn trong cửa hàng, có quyền đọc hoặc đọc/ghiCloud API key với quyền Object Storage và phạm vi dự án

Dung lượng được tính như thế nào?

File trong Storage của tất cả cửa hàng và Object Storage của tất cả Project cùng trừ hạn mức Object Storage của tài khoản WhyPik. Tạo thêm cửa hàng hoặc Project không nhân thêm dung lượng được cấp.

Ví dụ: file cửa hàng chiếm 2 GB và file Object Storage chiếm 1 GB thì tài khoản đã dùng tổng 3 GB. File đang tải lên còn giữ chỗ dung lượng cho đến khi hoàn tất hoặc được dọn xong. Hosting có hạn mức riêng.

Thanh dung lượng ở Storage cửa hàng hiện chỉ tính phần cửa hàng đó; phần quota Object Storage tính tổng tài khoản. Vì vậy cửa hàng có thể hiển thị còn trống nhưng vẫn không tải thêm được khi tổng tài khoản đã đầy. Cửa hàng còn có thể chịu giới hạn vận hành riêng; mức tải thực tế phải đáp ứng cả giới hạn cửa hàng và tài khoản.

Tiếp tục tải Object Storage khi mất mạng

Object Storage tải theo phần tối đa 8 MiB. Trong 48 giờ, mở lại Tải file lên trên cùng trình duyệt, chọn đúng file, bucket, đường dẫn và tùy chọn như lần trước. WhyPik kiểm tra file rồi chỉ gửi các phần còn thiếu. Tiến độ vẫn được giữ khi đóng trình duyệt nếu chưa xóa dữ liệu trang và trình duyệt cho phép lưu.

File chỉ sẵn sàng sau khi máy chủ ghép và kiểm SHA-256 toàn bộ. Lượt tải chưa hoàn tất vẫn giữ dung lượng; hết hạn hoặc hủy sẽ được dọn nền rồi trả dung lượng. Hosting, Object Storage và file cửa hàng/bản phát hành hỗ trợ tải tiếp; ZIP Mini Server vẫn dùng luồng hiện có.

Mở Storage cửa hàng

Chọn dự án → Cửa hàng → chọn cửa hàng → Storage cửa hàng. Tại đây bạn quản lý file độc lập và xem cả những file được tải lên từ luồng bản phát hành sản phẩm.

Muốn phát hành phiên bản phần mềm, dùng luồng bản phát hành của sản phẩm. Hiện không có thao tác gắn một file độc lập đã tải vào kho thành bản phát hành sản phẩm. Không thể dùng nút bật liên kết công khai để vượt quyền tải của bản phát hành riêng tư.

API key Storage cửa hàng là khóa quản lý; không đặt trong mã JavaScript công khai hoặc ứng dụng phát cho khách.

Tiếp tục tải file cửa hàng và bản phát hành

File mới trong Storage cửa hàng và bản phát hành phần mềm được chia phần tối đa 8 MiB, giữ lượt tải 48 giờ. Nếu mất mạng, chọn lại cùng file trên trình duyệt này rồi bấm Tải lên / thử lại. Với bản phát hành, chọn lượt đang chờ hoặc nhập lại đúng phiên bản và các tùy chọn cũ; phần đã nhận không gửi lại. Trình duyệt cần cho phép lưu dữ liệu trang để tiếp tục sau khi đóng.

Checksum từng phần và cả file phải khớp. Sau khi nhận xong vẫn cần quét ClamAV; bản phát hành sản phẩm còn cần chủ cửa hàng công bố. Tiến độ 100% không đồng nghĩa file đã sẵn sàng cho khách tải.

Lượt tải dở hoặc đã ghép nhưng chưa dọn phần tạm vẫn giữ dung lượng. Hủy lượt upload hoặc chờ hết hạn; máy chủ trả dung lượng sau khi dọn xong. Lượt nguyên file cũ vẫn có thể tiếp tục bằng cách gửi lại toàn bộ trong thời hạn 30 phút.

Tải file vào Object Storage

Chọn dự án → Object Storage → kích hoạt bucket mặc định. Dùng bộ chọn cạnh tiêu đề để chọn bucket; tab File chỉ hiển thị file của bucket đang chọn. Bấm Tải file lên và kiểm tra đường dẫn, dung lượng, quyền truy cập.

Mở bộ chọn → Tạo bucket, nhập tên và mã khi tài khoản còn suất. Cùng một đường dẫn có thể tồn tại trong hai bucket; trong một bucket không ghi đè file trùng đường dẫn. Mã bucket không đổi hoặc tái sử dụng sau khi xóa.

Chia sẻ file Object Storage

Địa chỉ file có dạng https://storage.whypik.app/<địa-chỉ-dự-án>/<bucket>/<đường-dẫn-file>. Dùng URL API trả về để giữ đúng ký tự trong tên file. File công khai không cần token; file riêng tư cần URL có chữ ký và thời hạn. Các liên kết /o/<code> đã cấp vẫn hoạt động theo cùng quyền.

Bucket mặc định dùng mã d trong URL, ví dụ https://storage.whypik.app/hue-spa/d/images/logo.png. Bucket bổ sung giữ mã riêng, ví dụ /hue-spa/photos/images/logo.png. d dành riêng cho bucket mặc định; link cũ có /default/ vẫn dùng được. UUID và mã bucket trong API không thay đổi; hãy dùng trường url được trả về.

Trong Quyền truy cập, bucket có tùy chọn cho phép file công khai. Bucket mới bổ sung mặc định chỉ riêng tư; kể cả khi cho phép công khai, từng file vẫn mặc định riêng tư. Tắt quyền công khai của bucket chặn liên kết công khai của mọi file trong đó. CORS chỉ cho trình duyệt đọc phản hồi từ origin đã khai báo, không thay quyền tải.

Ai có URL ký còn hạn đều có thể tải. Đổi quyền file, xóa file hoặc khóa bucket làm mất quyền tải thông thường. URL xuất dữ liệu của chủ tài khoản dùng riêng, tối đa 5 phút, vẫn tải được khi vượt số bucket.

API key có thời hạn đến 10 năm hoặc Không hết hạn; không làm URL tải riêng tư thành vĩnh viễn. Không đặt khóa quản lý tài khoản trong website.

Cho phép website đọc file qua CORS

Chọn Object Storage → chọn bucket → Quyền truy cập. Tại Website được đọc file qua CORS, nhập domain rồi nhấn Enter, dấu phẩy hoặc Thêm. Có thể dán nhiều domain ngăn bằng dòng mới; bấm dấu x trên chip để bỏ. Bấm Lưu thay đổi để áp dụng cho bucket đang chọn.

Ví dụ nhập app.example.com và shop.example.com sẽ thành https://app.example.com và https://shop.example.com. Domain trùng chỉ giữ một lần. Tối đa 10 origin HTTPS (giao thức + tên miền + cổng nếu có), không có đường dẫn, query hay ký tự đại diện.

CORS cho phép JavaScript trên website đó đọc phản hồi qua trình duyệt; không phải danh sách người được tải file. File công khai vẫn tải được trực tiếp từ nơi khác. File riêng tư vẫn cần token hoặc quyền tải hợp lệ.

Xóa và quota

Dung lượng của mọi bucket, kể cả bucket bị khóa khi hạ gói, cộng với Storage cửa hàng theo hạn mức tài khoản. Suất bucket trong đợt test: Free 1, Starter 5, Pro 20 trên toàn tài khoản; đây là hạn mức thử nghiệm.

Free vẫn hiện Tạo bucket bên trong bộ chọn. Hết suất sẽ yêu cầu nâng cấp; sau hạ gói, hệ thống ưu tiên bucket mặc định rồi thứ tự tạo, các mục dư bị làm mờ và ngừng phục vụ/ghi mới. Dữ liệu không tự xóa.

Chủ tài khoản vẫn có thể tải file hoặc xóa dữ liệu ở mục bị khóa. Xóa bucket bổ sung dọn tất cả file của nó; không ảnh hưởng bucket khác. Bucket mặc định không xóa riêng. Đợi dọn hoàn tất mới trả suất và dung lượng.

Trong bài này