Sử dụng công cụ S3 SDK
Một số use case thông thường (ví dụ đối với ngôn ngữ: Java & thư viện AWS SDK)
Tạo một container mới
s3Client.createBucket(<CONTAINER-NAME>);
Lấy danh sách tất cả object trong một container
ObjectListing objectListing = s3Client.listObjects(<CONTAINER-NAME>); for (S3ObjectSummary os : objectListing.getObjectSummaries()) { System.out.println(os.getKey()); }
Tải lên tệp tin vào một container
s3Client.putObject(<CONTAINER-NAME>, <KEY-NAME>, new File(<PATH-TO-LOCAL-FILE>));
Xóa một object trong một container
s3Client.deleteObject(<CONTAINER-NAME>, <KEY-NAME>);
Xóa một container
ObjectListing objectListing = s3Client.listObjects(<CONTAINER-NAME>);
if (CollectionUtils.isNotEmpty(objectListing.getObjectSummaries())) { String[] objkeyArr = objectListing.getObjectSummaries().stream().map(S3ObjectSummary::getKey) .toArray(String[]::new); DeleteObjectsRequest delObjReq = new DeleteObjectsRequest(container).withKeys(objkeyArr); s3Client.deleteObjects(delObjReq); }
s3Client.deleteBucket(container);
Di chuyển một object
s3Client.copyObject(<SOURCE-CONTAINER-NAME>, <SOURCE-KEY-NAME>, <DEST-CONTAINER-NAME>, <DEST-KEY-NAME>); s3Client.deleteObject(<SOURCE-CONTAINER-NAME>, <SOURCE-KEY-NAME>);
Một số use case nâng cao
Chuyển chế độ công khai container
s3Client.setBucketAcl(<CONTAINER-NAME>, CannedAccessControlList.PublicRead);
Chuyển chế độ riêng tư container
s3Client.setBucketAcl(<CONTAINER-NAME>, CannedAccessControlList.Private);
Chú ý khi sử dụng S3 SDK
Chú ý:
Khi bạn sử dụng S3 SDK để tải lên tệp tin lớn (multipart upload), tệp tin được chia thành nhiều segment để tải lên hệ thống vStorage. Trong quá trình tải của tệp tin, có thể có một số segment được tải lên, một số segment không được tải lên do gặp lỗi như network có vấn đề, hệ thống vStorage đang quá tải, ứng dụng của bạn bị dừng chạy, treo, v.v. Tệp tin khi đó được xem như tải lên không thành công, các segment đã được tải lên được xem như là các incomplete segment hay là segment rác và đang chiếm dụng dung lượng lưu trữ của bạn. Chúng tôi khuyến cáo bạn nên chủ động xóa các segment rác này trong ứng dụng của bạn để tối ưu chi phí và dung lượng lưu trữ của project mà bạn đang sử dụng.
Last updated