0

我可以在下面的鉻存儲API頁面閱讀,我們可以存儲字符串值在鉻存儲按鍵。有沒有辦法存儲鉻存儲中的密鑰文件?我們可以存儲文件在鉻存儲,而不是字符串

https://developer.chrome.com/apps/app_storage

+1

Chrome的存儲提供了遵循同樣的標準爲localStorage的API,因此你應該檢討這個問題已經被回答https://stackoverflow.com/q/4940586 – davidcondrey

+0

感謝您的鏈接。與Chrome存儲相比,LocalStorage的空間有限。將Chrome存儲中的base64編碼文件字符串存儲在密鑰中是不錯的主意。文件數量將以千計,總空間可能超過5 GB。 您提到的上述鏈接建議使用File API,如果我上面提出的建議不是一個好主意,我相信這是正確的路徑。 – user3191524

+0

由於文件不會將文件轉換爲字符串,所以文件API的命令速度會更快。 – wOxxOm

回答

1

chrome.storage存儲數據作爲它給存儲的值的JSON字符串化。所以,是的,如果您將文件轉換爲可以轉換爲JSON的格式(例如通過JSON.stringify()),則可以存儲該文件的內容。如果您試圖存儲在chrome.storage中的值無法轉換爲JSON,則無法存儲它(例如DOM元素)。 chrome.storage本質上不關心數據表示什麼,只是它可以被JSON字符串化。

如您在評論中所述,如果在chrome.storage中存儲總共超過5GB的數千個不同的「文件」是一個好主意,那麼答案是:「NO!」。

如果您正在尋找替代品,那麼一些在Can you use HTML5 local storage to store a file? If not, how?

+0

但在鉻的存儲,我們可以通過在瀏覽器擴展程序的清單設置屬性「unlimitedStorage」存儲無限的數據 https://developer.chrome.com/apps/declare_permissions#unlimitedStorage 那麼,爲什麼你會相信有5 GB的Chrome存儲中的數據不是一個好主意?你能解釋一下嗎? 關於在Chrome存儲中存儲文件;我可以將它們存儲爲blob或bufferdata格式,而不是json;所以我認爲應該可以從Chrome存儲中獲取blob,並以某種方式將blob轉換爲文件。請讓我知道,如果它不是一個好主意? – user3191524

+0

Chrome轉換爲JSON,期間。您不必自行轉換爲JSON,只需將* * *轉換爲JSON即可,因爲Chrome會將它們轉換爲JSON。 – Makyen

+0

如果你真的對爲什麼感興趣,那麼應該[另一個問題](https://stackoverflow.com/questions/ask),因爲除了「性能」之外的任何答案開始太長以待評論。 – Makyen