Tôi đã trả lời câu hỏi tương tự trên Stack Overflow .
s3fs thực sự là một giải pháp hợp lý, và trong trường hợp của tôi, tôi đã kết hợp nó với proftpd với kết quả tuyệt vời, bất chấp các vấn đề lý thuyết / tiềm năng.
Vào thời điểm tôi viết câu trả lời, tôi chỉ thiết lập điều này cho một trong những khách hàng tư vấn của mình ... nhưng kể từ đó, tôi cũng bắt đầu uống viện trợ kool của riêng mình và đang sử dụng nó trong sản xuất trong công việc hàng ngày. Các công ty chúng tôi trao đổi dữ liệu với các tệp tải lên và tải xuống cả ngày trên máy chủ sftp của tôi, nơi đang lưu trữ mọi thứ trực tiếp trên S3. Như một phần thưởng, hệ thống xuất báo cáo của tôi - viết bảng tính excel trực tiếp lên S3 - có thể xuất báo cáo "sang máy chủ FTP" bằng cách đặt chúng trực tiếp vào nhóm máy chủ ftp, với siêu dữ liệu phù hợp để hiển thị uid, gid và chế độ của từng tập tin. (s3fs sử dụng các tiêu đề x-amz-meta-uid, -gid và -mode để mô phỏng các quyền của hệ thống tập tin). Khi máy khách đăng nhập vào máy chủ, các tệp báo cáo chỉ là ... ở đó.
Tôi nghĩ rằng giải pháp lý tưởng có lẽ sẽ là một dịch vụ cổng sftp cho S3, nhưng tôi vẫn chưa có ý định thiết kế một giải pháp, vì giải pháp này hoạt động rất tốt ... dĩ nhiên là có một số cảnh báo:
Không phải tất cả các giá trị mặc định cho s3fs là lành mạnh. Bạn có thể sẽ muốn chỉ định các tùy chọn sau:
-o enable_noobj_cache # s3fs has a huge performance hit for large directories without this enabled
-o stat_cache_expire=30 # the ideal time will vary according to your usage
-o enable_content_md5 # it's beyond me why this safety check is disabled by default
Có lẽ tốt nhất là sử dụng một khu vực khác ngoài US-Standard, bởi vì đó là khu vực duy nhất không cung cấp tính nhất quán đọc sau khi viết trên các đối tượng mới. (Hoặc, nếu bạn cần sử dụng US-Standard, bạn có thể sử dụng tên máy chủ gần như không có giấy tờ your-bucket.s3-external-1.amazonaws.com
từ khu vực us-East-1 để ngăn các yêu cầu của bạn được định tuyến địa lý, điều này có thể cải thiện tính nhất quán.)
Tôi đã kích hoạt phiên bản đối tượng trên nhóm, điều mà s3fs hoàn toàn không biết. Lợi ích của việc này là ngay cả khi một tệp sẽ bị "dậm chân", tôi luôn có thể chuyển sang phiên bản xô để khôi phục tệp "bị ghi đè". Phiên bản đối tượng trong S3 được thiết kế tuyệt vời theo cách mà các máy khách S3 không biết về phiên bản không bị vô hiệu hóa hoặc nhầm lẫn, bởi vì nếu bạn không thực hiện các cuộc gọi REST nhận biết phiên bản, các phản hồi trả về S3 tương thích với các máy khách có không có khái niệm về phiên bản.
Cũng lưu ý rằng việc truyền dữ liệu vào S3 không phải trả phí truyền dữ liệu. Bạn chỉ trả giá theo yêu cầu. Chuyển dữ liệu ra khỏi S3 vào EC2 trong một khu vực cũng không phải trả phí chuyển dữ liệu. Chỉ khi bạn chuyển từ S3 sang Internet, tới Cloudfront hoặc tới một khu vực AWS khác mà bạn phải trả phí chuyển khoản. Nếu bạn muốn sử dụng bộ lưu trữ dự phòng giảm giá thấp hơn, s3fs hỗ trợ điều đó với -o use_rrs
.
Là một điều thú vị, bạn sẽ luôn có cảm giác mờ ấm khi nhìn thấy 256 terabyte dung lượng trống (và 0 được sử dụng, vì một phép tính thực tế về kích thước là không thực tế vì thực tế S3 là một kho lưu trữ đối tượng, không phải là hệ thống tệp ).
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 1.4G 6.2G 18% /
s3fs 256T 0 256T 0% /srv/s3fs/example-bucket
Tất nhiên, bạn có thể gắn thùng ở bất cứ đâu. Tôi chỉ tình cờ có nó trong / srv / s3fs.