Khắc phục sự cố
Trang này liệt kê các sự cố thường gặp khi dùng FPT Object Storage, nguyên nhân có thể và cách khắc phục.
Client hoặc SDK kết nối tới Amazon S3 thay vì FPT Object Storage
Triệu chứng: Lỗi InvalidAccessKeyId, hoặc request được gửi tới địa chỉ amazonaws.com.
Nguyên nhân: Công cụ S3 và SDK mặc định gửi request tới Amazon S3 nếu bạn không đặt endpoint.
Cách khắc phục: Đặt endpoint của Region trong client hoặc SDK. Ví dụ, AWS CLI cần --endpoint-url, còn s3cmd cần S3 Endpoint và DNS-style bucket+hostname. Xem Kết nối bằng S3 client và Tham chiếu SDK. Endpoint của từng Region nằm trong tab Access Key trên Portal.
Request tới bucket-name.<endpoint> lỗi DNS hoặc SSL
Triệu chứng: Client không phân giải được địa chỉ như my-bucket.s3-hcm04.fptcloud.com, hoặc báo chứng chỉ SSL không khớp. Lỗi này thường xảy ra khi tên bucket chứa dấu chấm (.).
Nguyên nhân: FPT Object Storage hỗ trợ hai kiểu địa chỉ:
- Virtual-hosted style: tên bucket là một phần của host name, ví dụ
https://my-bucket.s3-hcm04.fptcloud.com/photo.jpg. - Path-style: tên bucket là một phần của đường dẫn, ví dụ
https://s3-hcm04.fptcloud.com/my-bucket/photo.jpg.
Virtual-hosted style phụ thuộc vào DNS và vào việc chứng chỉ SSL khớp với toàn bộ host name, nên có thể lỗi trên một số mạng hoặc với tên bucket chứa dấu chấm.
Cách khắc phục: Chuyển client sang path-style:
| Công cụ | Thiết lập |
|---|---|
| AWS CLI | aws configure set default.s3.addressing_style path |
| s3cmd | Đặt host_bucket cùng giá trị với host_base, ví dụ s3-hcm04.fptcloud.com. |
| boto3 (Python) | config=botocore.config.Config(s3={"addressing_style": "path"}) |
| SDK khác | Bật tùy chọn path-style, như hướng dẫn trong Tham chiếu SDK. |
Request lỗi AccessDenied (403)
Kiểm tra danh tính sở hữu key:
- SubUser: vai trò có thể là None, hoặc Bucket Policy chưa cấp cho SubUser này quyền truy cập bucket. Xem Quản lý SubUser và Cấp quyền theo từng bucket cho SubUser.
- IAM User: IAM User mới không có quyền nào cho đến khi bạn gắn policy, và policy phải bao gồm cả bucket lẫn các object trong bucket (
arn:aws:s3:::bucket-namevàarn:aws:s3:::bucket-name/*). Xem Quản lý IAM User và IAM Role. - Key đã xóa: key bị xóa trên Portal ngừng hoạt động ngay lập tức.
URL của object trả về AccessDenied trên trình duyệt
Nguyên nhân: Người dùng ẩn danh chỉ mở được URL của object khi object ở chế độ công khai. Bucket ACL Public cho phép mọi người liệt kê bucket nhưng không làm các object trong đó trở thành công khai.
Cách khắc phục: Đặt object ở chế độ công khai bằng Object ACL, hoặc thêm Bucket Policy cho phép s3:GetObject với mọi người. Xem Quản lý quyền truy cập.
Trang web không tải được file từ bucket do CORS
Triệu chứng: Console của trình duyệt hiển thị lỗi như No 'Access-Control-Allow-Origin' header.
Cách khắc phục: Thêm CORS rule cho bucket, cho phép origin của website và các HTTP method mà website dùng. Xem Cấu hình bucket.
Upload lỗi checksum sau khi cập nhật SDK hoặc AWS CLI
Triệu chứng: Lỗi như XAmzContentSHA256Mismatch, MissingContentLength hoặc InvalidRequest khi upload, sau khi nâng cấp.
Nguyên nhân: Các phiên bản AWS SDK và AWS CLI phát hành từ năm 2025 trở đi mặc định thêm checksum toàn vẹn dữ liệu vào request upload.
Cách khắc phục: Đặt tùy chọn tính checksum của request thành when_required. Với AWS CLI và các SDK đọc file cấu hình AWS, thêm các dòng sau vào ~/.aws/config:
[default]
request_checksum_calculation = when_required
response_checksum_validation = when_required
Không upload được file lớn hơn 100 GB trên Portal
Nguyên nhân: Portal chỉ nhận tối đa 100 GB mỗi lần upload.
Cách khắc phục: Upload file bằng S3 client như AWS CLI hoặc s3cmd, hoặc bằng SDK. Các công cụ này tự động chia file lớn thành nhiều phần (multipart upload). Xem Kết nối bằng S3 client.
Mất Secret Key của Access Key
Nguyên nhân: Secret Key chỉ hiển thị một lần khi tạo key và không thể lấy lại sau đó.
Cách khắc phục: Tạo key mới, cập nhật mọi ứng dụng đang dùng key cũ, rồi xóa key cũ. Xem Quản lý Access Key.
Tab IAM User không hiển thị trên Portal
Nguyên nhân: IAM User và IAM Role chỉ khả dụng cho Object Storage trên cluster HCM-04.
Cách khắc phục: Trên các cluster khác, dùng SubUser để chia sẻ quyền truy cập giới hạn. Xem Quản lý SubUser.
s3cmd không lưu thiết lập
Nguyên nhân: Ở cuối s3cmd --configure, lời nhắc Save settings? [y/N] mặc định là N.
Cách khắc phục: Chạy lại s3cmd --configure và nhập y ở lời nhắc cuối cùng, hoặc sửa trực tiếp ~/.s3cfg.
Vẫn cần hỗ trợ?
Liên hệ bộ phận hỗ trợ FPT Cloud, kèm theo tên bucket, Region, công cụ hoặc SDK và phiên bản, thông báo lỗi chính xác và thời điểm xảy ra lỗi.