Я использовал файлсистем API для записи нового файла в изолированном хранении Chrome:Можно ли легко получить нормальный (деобфузированный) доступ ко всем файлам в песочнице, написанной с использованием API FileSystem?
подготовки FS:
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
function errorHandler(e) {
var msg = '';
switch (e.code) {
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_MODIFICATION_ERR:
msg = 'INVALID_MODIFICATION_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
console.log('Error: ' + msg);
}
var fileSystem;
function onInitFs(fs) {
console.log('Opened file system: ' + fs.name);
fileSystem = fs;
}
navigator.webkitPersistentStorage.requestQuota(1024*1024,
function(gB){
window.requestFileSystem(PERSISTENT, gB, onInitFs, errorHandler);
}, function(e){
console.log('Error', e);
})
записи файла:
fileSystem.root.getFile('log.txt', {create: true}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
console.log('Write completed.');
};
fileWriter.onerror = function(e) {
console.log('Write failed: ' + e.toString());
};
// Create a new Blob and write it to log.txt.
var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'});
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
Так потом я нашел новый файл в ./ChromeFolder/FileSystem/003/p/00/00000000
с содержимым Lorem Ipsum
(чтение его с помощью шестнадцатеричного редактора).
Я думал, что я мог бы получить доступ к песочницы FS как обычные смонтированных ФС, так что у меня нормальные файлы и каталоги имен. Вместо этого я вижу некоторые обфусканные имена файлов (00000000
вместо ожидаемых log.txt
), а не структуру, которую я ожидал.
Как это:
Можно открыть изолированного FS как обычные FS, так что я мог бы управлять всеми файлами, как я создаю их в Chrome, используя файлсистем API (я имею в виду структуру и имена файлов), или это невозможно, и он остается запутанным за пределами Chrome?
Есть ли какие-либо трюки, какие-либо изменения флага в Chrome, чтобы получить то, что я ожидал?
Ваш опыт был интересен для чтения - спасибо Фил. – Jimbo