Tôi có một ứng dụng tải tệp người dùng lên S3. Hiện tại, ACL cho các thư mục và tệp được đặt thành riêng tư.Phân phối an toàn các tệp từ Amazon S3
Tôi đã tạo ra một bảng db (gọi tắt là tài liệu) mà các cửa hàng các thông tin sau:
id
user_id
file_name (original file as specified by the user)
hash_name (random hash used to save the file on amazon)
Vì vậy, khi người dùng muốn tải về một tập tin, lần đầu tiên tôi kiểm tra trong bảng db rằng họ có quyền truy cập vào tập tin. Tôi không muốn có tập tin đầu tiên tải về máy chủ của tôi và sau đó gửi cho người dùng - Tôi muốn họ có thể lấy các tập tin trực tiếp từ Amazon.
Có OK để dựa vào một tên băm rất dài (làm cho về cơ bản không thể cho bất kỳ ai đoán ngẫu nhiên tên tệp)? Trong trường hợp này, tôi có thể đặt ACL cho mỗi tệp để đọc công khai.
Hoặc, có những tùy chọn nào khác mà tôi có thể sử dụng để phân phối tệp trong khi vẫn giữ riêng tư không?
Vì vậy, về cơ bản, không có cách nào để giữ ACL tư nhân và vẫn phục vụ nó từ amazon? Điều gì về tạm thời thay đổi ACL để đọc công khai, sau đó phục vụ nó từ S3, và sau đó thay đổi ACL trở lại tư nhân? – JonoB
Xem câu trả lời cập nhật của tôi. Bạn có thể tạo URL công khai giới hạn thời gian trong khi không mở ACL của bạn với mọi người. –
@EricJ.tôi có thể biết làm thế nào để làm cho nó được xác thực người dùng để xem hình ảnh. Nếu bạn biết sau đó bạn có thể trả lời cho câu hỏi này http://stackoverflow.com/questions/40168221/laravel-secure-amazon-s3-bucket-files.Cảm ơn bạn – iCoders