2013-04-12 30 views
5

Tôi muốn phân phối các tệp tĩnh được lưu trữ trong bộ nhớ đám mây của google cho ứng dụng được lưu trữ trong công cụ ứng dụng. Trong tệp HTML, tôi đã sử dụngCung cấp các tệp tĩnh từ bộ nhớ đám mây của Google?

<link href="https://storage.cloud.google.com/my_bucket/custom.css" rel="stylesheet"> 

Nó hoạt động bình thường, nếu tài khoản google của người dùng đã đăng nhập có quyền truy cập vào nhóm. Vì ứng dụng có thể được truy cập bởi bất kỳ ai không có quyền truy cập vào nhóm của tôi và trong trường hợp này, các tệp tĩnh sẽ không được phân phối.

Có thể đặt các tệp tĩnh trong nhóm công khai không? Tôi đã tạo tệp tĩnh (custom.css) là 'được chia sẻ công khai' (ACL được đặt thành 'công khai đọc') nhưng vẫn những người dùng khác không thể truy cập tệp đó.

+0

Bạn làm điều này bằng cách thiết lập mặc định ACL trên thùng sau khi bạn đã thêm tệp? –

+0

Ya. Tôi đã sử dụng files.gs.create ("/ gs/my_bucket/custom.css", acl = 'public-read'). – rajpy

Trả lời

7

Tôi không chắc chắn cách bạn tải lên tệp của mình và lý do công chúng đọc không được đặt chính xác nhưng bạn cũng có thể thay đổi điều đó thông qua Google Cloud Storage Manager. Chỉ cần xác định vị trí thùng và tệp và nhấp vào dấu kiểm Share Publicly và bạn sẽ nhận được liên kết.

list of files in the bucket on cloud storage

Hoặc bạn có thể tải lên tập tin bằng cách sử dụng gsutil với công chúng đọc ngay lập tức:

gsutil cp -a public-read custom.css gs://my_backet 
+0

Dấu kiểm bị thiếu! Cảm ơn cho hình ảnh, nếu không tôi không thể tìm thấy nó. – rajpy

0

Bên cạnh của tự thay đổi mỗi file tĩnh thông qua Google Cloud Storage Manager bạn cũng có thể đặt xô của bạn sẽ được có thể xem công khai bằng cách sử dụng gsutil:

Sử dụng acl để đặt công khai đọc trên đối tượng xô hiện tại

gsutil -m acl set -R -a public-read gs://BUCKET_NAME 

Sử dụng defacl để thiết lập như mặc định cho cập nhật trong tương lai:

gsutil -m defacl set public-read gs://BUCKET_NAME 

Các "chia sẻ công khai" hộp kiểm tra sẽ được sau đó tự động kiểm tra cho mỗi file được tải lên.

Đối accessing bucket, hãy chắc chắn rằng bạn có nhập một id được uỷ quyền hoặc email cho các nhóm và người sử dụng và một tên miền cho các bucket permission nếu không bạn sẽ nhận được thông báo lỗi như:

'DefAclCommand' object has no attribute 'continue_on_error'