Usage in browser
You can upload files using JavaScript CKAN modules. ckanext-files extends
CKAN's Sandbox object(available as this.sandbox
inside the JS CKAN module),
so we can use shortcut and upload file directly from the DevTools. Open any
CKAN page, switch to JS console and create the sandbox instance. Inside it we
have files
object, which in turn contains upload
method. This method
accepts File
object for upload(the same object you can get from the
input[type=file]
).
sandbox = ckan.sandbox()
await sandbox.files.upload(
new File(["content"], "file.txt")
)
... {
... "id": "18cdaa65-5eed-4078-89a8-469b137627ce",
... "name": "file.txt",
... "location": "b53907c3-8434-4dee-9a9e-6c4d3055d200",
... "content_type": "text/plain",
... "size": 7,
... "hash": "9a0364b9e99bb480dd25e1f0284c8555",
... "storage": "default",
... "ctime": "2024-06-02T16:12:27.902055+00:00",
... "mtime": null,
... "atime": null,
... "storage_data": {}
... }
If you are still using FS storage configured in previous section, switch to
/tmp/example
folder and check it's content:
ls /tmp/example
... b53907c3-8434-4dee-9a9e-6c4d3055d200
cat b53907c3-8434-4dee-9a9e-6c4d3055d200
... content
And, as usually, let's remove file using the ID from the upload
promise:
sandbox.client.call("POST", "files_file_delete", {
id: "18cdaa65-5eed-4078-89a8-469b137627ce"
})