Giả lập Google Cloud Storage sử dụng fake-gcs-server

Khi làm việc với các Cloud Provider, chúng ta cần tính toán đến các giải pháp để tiết kiệm chi phí, ít nhất là ở giai đoạn development. Vì đa số các service của các Cloud Provider mà chúng ta cần sử dụng, sẽ ít nhiều tốn tiền. Một giải pháp mà mình giới thiệu với các bạn trong bài viết này là về giả lập Google Cloud Storage sử dụng một open-source tên là fake-gcs-server, phù hợp cho những dự án nào có sử dụng Google Cloud Platform. Nó giúp chúng ta có thể start lên một standalone server có chức năng gần giống với Google Cloud Storage. Các bạn có thể sử dụng các thư viện của Google provide để làm việc với Google Cloud Storage, để làm việc với open-source này luôn.

Cài đặt fake-gcs-server

fake-gcs-server cung cấp cho chúng ta một Docker Image, giúp chúng ta có thể dễ dàng start nó lên chỉ với vài bước.

Cụ thể, các bạn cần chạy Docker command sau:

Lúc này, nếu các bạn request tới URL để lấy thông tin Buckets list với host port sử dụng fake server: https://localhost:4443/storage/v1/b, các bạn sẽ thấy kết quả như sau:

Giả lập Google Cloud Storage sử dụng fake-gcs-server

Items hiển thị empty vì chúng ta chưa có một bucket nào trong fake-gcs-server.

Các bạn có thể mount một số data có sẵn và chạy fake-gcs-server như sau:

${PWD} là thư mục hiện hành các bạn đang chạy lệnh Docker cộng với thư mục example/data, sẽ được map với thư mục /data bên trong container của fake-gcs-server. Các bạn có thể thay đổi ${PWD}/examples/data thành bất cứ thư mục nào mà các bạn muốn. Những thư mục trong thư mục ${PWD}/examples/data này sẽ là những bucket, và tất nhiên những tập tin nằm trong các bucket sẽ là những object của những bucket này.

Ví dụ mình có tập tin test.txt nằm trong thư mục /Users/khanh/Document/data/sample-bucket, mình chạy câu lệnh start fake-gcs-server như sau:

thì lúc này sample-bucket sẽ là một bucket trong fake-gcs-server, và tập tin test.txt sẽ là một object trong bucket này.

Request lại URL https://localhost:4443/storage/v1/b, các bạn sẽ thấy kết quả như sau:

Giả lập Google Cloud Storage sử dụng fake-gcs-server

Lấy thông tin tất cả các object của bucket với URL https://localhost:4443/storage/v1/b/sample-bucket/o, các bạn sẽ thấy kết quả như sau:

Giả lập Google Cloud Storage sử dụng fake-gcs-server

Các bạn có thêm tuỳ ý bao nhiêu bucket cũng được, bao nhiêu object cũng được.

Mặc định thì fake-gcs-server sử dụng HTTPS, các bạn có thể sử dụng HTTP bằng cách thêm vào command start nó tham số scheme như sau:

Lúc này chúng ta có thể sử dụng fake-gcs-server với HTTP:

Giả lập Google Cloud Storage sử dụng fake-gcs-server


Sử dụng Spring Cloud GCP Storage để access vào bucket của fake-gcs-server

Để access vào các bucket trên Google Cloud Storage, các bạn có thể sử dụng thư viện spring-cloud-gcp-storage. Chúng ta cũng có thể sử dụng thư viện này với fake-gcs-server.

Một điều các bạn cần lưu ý là chúng ta không cần sử dụng credentials để access vào các bucket của fake-gcs-server.

Mình sẽ tạo một Maven project đơn giản, khai báo sử dụng spring-cloud-gcp-storage để access vào fake-gcs-server mà mình đã start ở trên, như sau:

Giả lập Google Cloud Storage sử dụng fake-gcs-server

với:

Mình sẽ tạo mới một class main, sử dụng API của spring-cloud-gcp-storage để access vào bucket sample-bucket như sau:

Ở đây, mình không sử dụng credentials để access vào bucket của fake-gcs-server. Các bạn có thể thao tác trên bucket của fake-gcs-server tương tự như trên Google Cloud Storage sử dụng thư viện này.

Kết quả khi chạy ví dụ này như sau:

Giả lập Google Cloud Storage sử dụng fake-gcs-server

Add Comment