WebAPI/DeviceStorageAPI2
< WebAPI
Jump to navigation
Jump to search
This is a very simple filesystem API based on the DeviceStorage API
API
partial interface Navigator {
DeviceStorage getSandboxedFilesystem(DOMString filesystemName);
};
interface DeviceStorage {
// Name will be generated by the implementation and returned as result of request
DOMRequest add(Blob blob, DOMString name);
// Returns the result as a File object
DOMRequest get(DOMString name);
// Returns the result as a FileHandle object which enables writing
DOMRequest getEditable(DOMString name);
// Deletes a file
DOMRequest delete(DOMString name);
// The .result property on each success call is set to a File object
DeviceStorageCursor enumerate(optional DOMString directory)
// The .result property on each success call is set to a FileHandle object
DeviceStorageCursor enumeratEditable(optional DOMString directory)
// The .result property on each success call is either a
// { file: File } or { directory: "name" } object
DeviceStorageCursor enumerateShallow(optional DOMString directory)
// The .result property on each success call is either a
// { file: FileHandle } or { directory: "name" } object
DeviceStorageCursor enumerateShallowEditable(optional DOMString directory)
};
interface DeviceStorageCursor : DOMRequest {
void continue();
};
interface FileHandle {
LockedFile open([optional] DOMString mode); // defaults to "readonly"
FileRequest getFile(); // .result is set to resulting File object
};
interface LockedFile {
readonly attribute FileHandle fileHandle;
readonly attribute DOMString mode;
readonly attribute boolean active;
attribute long long? location; // Set to null on call to append
FileRequest readAsArrayBuffer(long size);
FileRequest readAsText(long size, optional DOMString encoding);
FileRequest write(DOMString or ArrayBuffer or ArrayBufferView or Blob value);
FileRequest append(DOMString or ArrayBuffer or ArrayBufferView or Blob value);
FileRequest truncate(optional long long size);
FileRequest getMetadata(MetadataParams params);
FileRequest flush(); // fsync
void close(); // Prevents any further requests from being placed against this lock
void abort(); // Immediately releases lock and stops any pending
};
dictionary MetadataParameters {
boolean size;
boolean lastModified;
};
interface FileRequest : EventTarget
{
readonly attribute DOMString readyState; // "pending" or "done"
readonly attribute any result;
readonly attribute DOMError error;
readonly attribute LockedFile lockedFile;
attribute nsIDOMEventListener onsuccess;
attribute nsIDOMEventListener onerror;
attribute nsIDOMEventListener onprogress;
}