2 回答

TA貢獻1851條經驗 獲得超5個贊
Amazon S3 是一種對象存儲服務,可以通過經過身份驗證的 API 請求進行訪問。
諸如s3fs
將 Amazon S3 呈現為文件系統之類的工具,但它們需要將此類用法轉換為正常的 S3 API 調用。當在 S3 或本地 s3fs 虛擬磁盤中進行大量更新時,更新另一端可能需要一些時間,并且在高使用率情況下它們可能會變得不同步。
s3fs 保留文件緩存的事實意味著文件可能會更快地變得不同步,這取決于它返回并檢查 S3 中的內容是否已更改的頻率。
它基本上是在您的應用程序和 S3 之間增加了另一層復雜性。如果你能直接去,它總是會更可靠。但是,這意味著您可能需要自己實現一些有用的功能。
如果你打算在生產環境中使用它,我建議創建一個測試平臺來模擬適當的使用級別,以確認所有系統都按預期工作。

TA貢獻1963條經驗 獲得超6個贊
您可以使用 s3fs 和 fsspec 在本地緩存 S3 文件: https://filesystem-spec.readthedocs.io/en/latest/features.html#caching-files-locally
文檔中的兩個示例對我來說都很好。似乎您實際上有第二個選項,因為您的示例中注釋掉了代碼。那對你不起作用嗎?
無論如何,你的第一個例子是
import pandas as pd
import fsspec
fs = fsspec.filesystem("filecache", target_protocol='s3', cache_storage='/tmp/files/', check_files=True)
with fs.open('s3://my-datasets/something/foo.csv') as file:
df = pd.read_csv(file, sep='|', header=None)
添加回答
舉報