HTML5 FileSystem API
Asked Answered
R

3

6

I have created file 'log.txt' by fileSystem API

function initFS(grantedBytes) {
    window.requestFileSystem(window.PERSISTENT, grantedBytes, function (filesystem) {
        fs = filesystem;

        fs.root.getFile('log.txt', { create: true, exclusive: true }, function (fileEntry) {

            // fileEntry.isFile === true
            // fileEntry.name == 'log.txt'
            // fileEntry.fullPath == '/log.txt'
            console.log(fileEntry.fullPath);



        }, errorHandler);
    }, errorHandler);
}

initFS(1024*1024);

And do not fully understand its structure. Is There any way to explore this file for example from Windows Explorer and see it in file system?

Retaliation answered 6/10, 2013 at 9:45 Comment(5)
The HTML5 FileSystem is sandboxed: there's no easy way to access it from Windows. This is a security feature to prevent hostile code from attacking the host file system.Overmantel
And i can't even set src of script tag to this file???Retaliation
The answer is no, and for good reasons. A more full answer, with reasons, is explained in my answer here: https://mcmap.net/q/1779891/-is-it-possible-to-easy-get-normal-deobfuscated-access-to-all-files-in-a-sandbox-written-using-filesystem-apiPyrogen
Forgot to add.... your question/topic was already addressed in the Wiki for this tag (see stackoverflow.com/tags/html5-filesystem/info)Pyrogen
You can play with that demo and see how filesystem structure changes.Amendment
C
2

Sort of, the File-system API doesn't encrypt the data being stored locally. It does however change the file naming conventions up. So you may have named it log.txt but if you poke around where the file-system API stores files, you'd probably find it under some arbitrary randomly generated file name like "00010" or in a random directory like "24/00123".

Anyway, you can open each file up in a text editor - if your file had text written to it you would be able to view it as such. Or if you wrote JSON to the file-system API it would be in human-readable string format when you opened in the text editor.

On Windows 7, with Chrome it's found here:

C:\Users\{user}\AppData\Local\Google\Chrome\User Data\Default\File System\

If you want to find out where it is stored via Chrome on other OS please see this post

Calyptra answered 21/11, 2013 at 22:47 Comment(0)
S
3

There is an even simpler way. On chrome, visit these urls.
For http, it's "filesystem:http://"+location.host+"/persistent/".
For https, it's "filesystem:https://"+location.host+"/persistent/".

Selma answered 2/5, 2016 at 0:54 Comment(0)
C
2

Sort of, the File-system API doesn't encrypt the data being stored locally. It does however change the file naming conventions up. So you may have named it log.txt but if you poke around where the file-system API stores files, you'd probably find it under some arbitrary randomly generated file name like "00010" or in a random directory like "24/00123".

Anyway, you can open each file up in a text editor - if your file had text written to it you would be able to view it as such. Or if you wrote JSON to the file-system API it would be in human-readable string format when you opened in the text editor.

On Windows 7, with Chrome it's found here:

C:\Users\{user}\AppData\Local\Google\Chrome\User Data\Default\File System\

If you want to find out where it is stored via Chrome on other OS please see this post

Calyptra answered 21/11, 2013 at 22:47 Comment(0)
G
0

Log files that an end-user or maintainer might want to see should be stored someplace in the normal file system. While the checked answer suggests how to find them when the HTML5 API is used, this location is subject to change and is troublesome to find.

A better solution is to have the user choose the directory for log files (and perhaps other files) when the app is installed, using chrome.fileSystem.chooseEntry, and then retain that entry and save it in local storage so it can be reused on subsequent launches.

Garcon answered 5/4, 2014 at 16:22 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.