Tất cả tài liệu

FPT Object Storage

    Bucket Config
    Bucket Config
    Updated on 11 Jan 2024

    Versioning

    Versioning là tính năng giúp lưu và quản lý nhiều phiên bản (version) của một object trên FPT Object Storage. Khi bật Versioning, mỗi lần bạn thực hiện một thao tác thay đổi (cập nhật hoặc xóa) lên object, một phiên bản mới sẽ được tạo ra và lưu trữ lại. Bạn có thể sử dụng tính năng này để lưu trữ và khôi phục mọi phiên bản của các đối tượng trong bucket.

    Hiện tại FPT Portal chưa cho phép quản trị các non current version, bạn có thể sử dụng SDK hoặc các client để sử dụng đầy đủ tính năng này.

    Để bật tính năng này cho bucket bạn thao tác như sau:

    Bước 1: Trong phần Action của Bucket cần cấu hình, chọn Config.

    Bước 2: Mở tab Versioning.

    Chọn Enable hoặc Disable và bấm Save. file

    Static Website Hosting

    Static Website Hosting là một tính năng cho phép bạn lưu trữ toàn bộ resource của một trang web tĩnh trên FPT Object Storage. Thay vì chỉ lưu trữ các tệp tin như bình thường, bạn có thể sử dụng bucket để lưu các file HTML, CSS, JavaScript cùng các tài nguyên tĩnh khác và cung cấp nó cho người dùng ở dạng website. Khi kích hoạt tính năng Static Website Hosting cho một bucket, FPT Object Storage sẽ cung cấp cho bạn một đường dẫn URL công khai. Bạn có thể sử dụng URL này để truy cập và chia sẻ trang web của mình với người dùng tương tự một web hosting. Để tạo và cấu hình chức năng Static Website Hosting trong FPT Object Storage, bạn cần thực hiện các bước sau:

    Bước 1: Khách hàng upload toàn bộ source website lên S3 bucket. file Bước 2: Trong phần Action của Bucket cần cấu hình, chọn Config. file Bước 3:

    Mở tab Static Website Hosting.

    Chọn ENABLE WEBSITE HOSTING và điền các thông số cần thiết:

    • Index Document: Trang chủ của website.
    • Error Document: Trang 404, sẽ hiển thị nếu user yêu cầu một url không hợp lệ. file Truy cập bằng Endpoints.
    Để truy cập được, các file trong bucket cần phải ở trạng thái Public.

    Lifecycle Configurations

    Lifecycle Configurations là một tính năng cho phép bạn tự động quản lý vòng đời của các đối tượng trong bucket. Tính năng này hiệu quả nhất cho nhu cầu tự động xóa object sau một thời gian nhất định.

    Bạn có thể tạo nhiều Lifecycle Rule cho một bucket, mỗi rule áp dụng cho nhóm đối tượng, hoặc chỉ tạo một rule và áp dụng cho toàn bộ bucket. Một Lifecycle Rule thông thường bao gồm các thành phần sau:

    • Scope (Phạm vi): Scope xác định các object mà rule sẽ áp dụng. Bạn có thể áp dụng cho toàn bộ bucket hoặc chỉ định tiền tố (prefix) để áp dụng cho một nhóm đối tượng cụ thể.
    • Delete current versions of objects: Xác định khi nào current version của các object nằm trong scope sẽ bị xóa. Nếu bạn không dùng Versioning, xóa current version sẽ tương ứng với việc xóa vĩnh viễn object.
    • Permanently delete noncurrent versions of objects: Xác định khi nào non-current version của các object nằm trong scope sẽ bị xóa. Các non-current version chỉ được tạo ra khi sử dụng Versioning, vì vậy nếu bạn không dùng Versioning thì không cần quan tâm phần này.
    • Delete incomplete multipart uploads: Xác định khi nào xóa các multipart uploads chưa hoàn thành.
    • Delete expired object delete markers: Xóa các delete markers đã hết hạn (không còn version nào).

    Với Lifecycle Configurations, bạn có thể quản lý vòng đời của các đối tượng trong bucket một cách hoàn toàn tự động, giúp tiết kiệm chi phí lưu trữ và tổ chức quản lý dữ liệu hiệu quả.

    Một số Action có rủi ro cao đã bị loại bỏ trên FPT Portal, ví dụ: **Permanently delete file on a particular date, Transitions Class,...** Nếu bạn vẫn có nhu cầu, hãy sử dụng các S3 Client để config.

    A. Tạo Lifecycle Rule mới

    Bước 1: Trên bảng quản trị Object Storage Management, chọn Config ở Bucket cần cấu hình Lifecycle Rule.

    Bước 2: Mở tab Lifecycle Configurations, chọn Create Rule. file Bước 3: Nhập thông tin của Lifecycle Rule vào các trường tương ứng:

    Rule Name: Tên của Rule.

    Rule Scope: Phạm vi các đối tượng mà quy tắc sẽ áp dụng. Bạn có thể áp dụng quy tắc cho toàn bộ bucket(Full) hoặc chỉ định tiền tố (prefix) để áp dụng cho một nhóm đối tượng cụ thể trong bucket.

    Action Description
    Delete current versions of objects Chọn số ngày sẽ xóa các current versions của objects.
    Permanently delete noncurrent versions of objects Chọn số ngày sẽ xóa các noncurrent versions của objects.
    Delete incomplete multipart uploads Chọn số ngày sẽ xóa các incomplete multipart uploads.
    Delete expired object delete markers Chọn số ngày sẽ xóa các expired object delete markers.

    file

    - Trong FPT Object Storage, nếu bạn đã bật tính năng Versioning thì khi một đối tượng bị xóa, thay vì loại bỏ ngay lập tức, hệ thống tạo một delete marker. Delete marker là một thực thể đặc biệt được tạo ra để biểu thị rằng đối tượng đã bị xóa. Việc tạo delete marker giúp theo dõi lịch sử xóa và khôi phục dữ liệu trong tương lai nếu cần.
    - Delete marker sẽ chuyển thành Expired delete markers khi toàn bộ các version cũ hơn của object đã bị xóa, còn tồn tại duy nhất Delete marker trong list version.

    B. Update Lifecycle Rule

    Bước 1: Ở Lifecycle Rule cần update, chọn Edit.

    Bước 2: Nhập các thông tin update của Lifecycle Rule. file

    C. Delete Lifecycle Rule

    Bước 1: Ở Lifecycle Rule cần delete, chọn Delete.

    Bước 2: Một hộp thoại cảnh báo sẽ hiện lên, hiển thị tên rule và yêu cầu người dùng xác nhận. Chọn Delete để tiến hành xóa. file

    Cấu hình Bucket CORS

    CORS (Cross-Origin Resource Sharing) cho phép các trang web tương tác với nhau và chia sẻ dữ liệu một cách an toàn.

    Mặc định FPT Object Storage sẽ luôn chặn các yêu cầu từ tất cả các origin (website, server) đến bucket. Tính năng Bucket CORS cho phép một trang web từ một origin cụ thể yêu cầu tài nguyên từ bucket mà không bị chặn bởi Same-Origin Policy (SOP).

    Khi một trang web cố gắng truy cập tài nguyên từ FPT Object Storage, trình duyệt sẽ gửi một yêu cầu Cross-Origin (CORS request) đến server FPT Object Storage. Server phải đáp ứng yêu cầu này với các thông tin liên quan đến quyền truy cập bằng cách gửi các HTTP headers chứa chính sách CORS. Trình duyệt sau đó kiểm tra các headers này để xác định xem truy cập được phép hay không.

    Để một origin (website, server) có thể GET dữ liệu từ bucket, bạn cần khai báo chúng trong Bucket CORS Config

    A. Tạo Bucket CORS Rule mới

    Bước 1: Trên bảng quản trị Object Storage Management, chọn Config ở Bucket cần cấu hình CORS.

    Bước 2: Mở tab Bucket CORS, chọn Create Rule. file Bước 3: Nhập thông tin của CORS Rule vào các trường tương ứng:

    Action Description
    Rule Name Tên của Rule
    Allowed Origins Origins được cấp phép CORS request. Sử dụng * để cho phép tất cả các Origins.
    Allowed Methods Một hoặc nhiều phương thức HTTP mà bạn cho phép Origins thực thi.
    Max Age Seconds Thời gian lưu cache.
    Advanced setting Expose Headers: Một hoặc nhiều headers trong response mà bạn muốn khách hàng có thể truy cập từ ứng dụng của họ. Allowed Headers: Tiêu đề được chỉ định trong Access-Control-Request-Headers.

    file

    B. Update Bucket CORS Rule

    Bước 1: Ở Bucket CORS Rule cần update, chọn Edit. file Bước 2: Nhập các thông tin update của CORS Rule. file

    C. Delete Bucket CORS Rule

    Bước 1: Ở Bucket CORS Rule cần delete, chọn Delete. file Bước 2: Một hộp thoại cảnh báo sẽ hiện lên, hiển thị tên rule và yêu cầu người dùng xác nhận. Chọn Delete để tiến hành xóa. file