7

Tôi đã đọc tất cả về stackoverflow liên quan đến kho dữ liệu so với blobstore để lưu trữ và truy xuất các tệp hình ảnh. Mọi thứ đang hướng tới blobstore ngoại trừ một: riêng tư và bảo mật.ndb.BlobProperty vs BlobStore: tức là riêng tư hơn và an toàn hơn

Trong kho dữ liệu, ảnh của người dùng của tôi ở chế độ riêng tư: Tôi có toàn quyền kiểm soát người bị đốm. Tuy nhiên, trong blobstore, bất kỳ ai biết url đều có thể truy cập được ảnh người dùng của tôi? Điều đó có đúng không?

Đây là câu trích dẫn cho tôi sự an tâm, nhưng nó vẫn chưa rõ ràng. Vì vậy, bất cứ ai có phím blob vẫn có thể truy cập các bức ảnh? (Từ Store Photos in Blobstore or as Blobs in Datastore - Which is better/more efficient /cheaper?)

theo cách bạn phục vụ cho một giá trị ra khỏi Blobstore là chấp nhận một yêu cầu để ứng dụng, sau đó trả lời với tiêu đề X-AppEngine-BlobKey với phím . App Engine chặn phản hồi gửi đi và thay thế nội dung bằng giá trị Blobstore được truyền trực tiếp từ dịch vụ. Vì logic ứng dụng đặt tiêu đề ở vị trí đầu tiên, ứng dụng có thể triển khai bất kỳ điều khiển truy cập nào mà nó muốn. Không có URL mặc định nào phân phát các giá trị trực tiếp từ Blobstore mà không cần sự can thiệp của ứng dụng.

Tất cả điều này là để hỏi: Điều gì là riêng tư hơn và an toàn hơn để quản lý hình ảnh và lý do: kho dữ liệu hoặc cửa hàng blobstore? Hoặc, hey, google-cloud-storage (mà tôi không biết gì về hiện tại)

+0

Tôi cũng đang xem xét điều này, tôi nghĩ rằng blobstore là tốt nhất để kiểm soát truy cập thông qua trình xử lý hoặc dịch vụ, có thể có quyền kiểm soát truy cập của người dùng –

+0

Và blobstore tương tự như lưu trữ đám mây từ những gì tôi đã đọc –

Trả lời

2

Nếu bạn sử dụng google.appengine.api.images.get_serving_url thì có, the url returned is public. Tuy nhiên, url được trả lại không thể đoán được từ khóa của blob, cũng như không tồn tại url trước khi gọi get_serving_url. (Hoặc sau khi gọi delete_serving_url).

Nếu bạn cần kiểm soát truy cập ở phía trên cùng của dữ liệu trong blobstore you can write your own handlers và thêm điều khiển truy cập tại đó.

0

BlobProperty chỉ là riêng tư và an toàn như BlobStore, tất cả đều phụ thuộc vào ứng dụng của bạn phục vụ các yêu cầu. ứng dụng của bạn có thể thực hiện bất kỳ kiểm tra quyền nào trước khi gửi nội dung cho người dùng, vì vậy tôi không thấy bất kỳ sự khác biệt nào miễn là bạn tự phân phối tất cả hình ảnh và không cố ý tạo URL có sẵn công khai.

Thực ra, tôi thậm chí không muốn lưu trữ ảnh trong BlobProperty, vì cách này dữ liệu kết thúc trong cơ sở dữ liệu thay vì BlobStore và chi phí đáng kể hơn để lưu trữ dữ liệu trong cơ sở dữ liệu. BlobStore, mặt khác, rẻ và thuận tiện.

Các vấn đề liên quan