{"id":13701426,"url":"https://github.com/fiatjaf/ipfs-dropzone","last_synced_at":"2026-05-28T18:01:04.451Z","repository":{"id":57276565,"uuid":"115828834","full_name":"fiatjaf/ipfs-dropzone","owner":"fiatjaf","description":"Dropzone.js  that uploads to IPFS instead of to an URL","archived":false,"fork":false,"pushed_at":"2019-08-07T20:08:36.000Z","size":3,"stargazers_count":154,"open_issues_count":1,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-12T09:32:07.326Z","etag":null,"topics":["drag-and-drop","dropzonejs","file-upload","ipfs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fiatjaf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-30T22:37:14.000Z","updated_at":"2026-04-20T13:21:15.000Z","dependencies_parsed_at":"2022-09-13T04:54:18.503Z","dependency_job_id":null,"html_url":"https://github.com/fiatjaf/ipfs-dropzone","commit_stats":null,"previous_names":["fiatjaf/dropzone-ipfs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fiatjaf/ipfs-dropzone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiatjaf%2Fipfs-dropzone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiatjaf%2Fipfs-dropzone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiatjaf%2Fipfs-dropzone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiatjaf%2Fipfs-dropzone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fiatjaf","download_url":"https://codeload.github.com/fiatjaf/ipfs-dropzone/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiatjaf%2Fipfs-dropzone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33619972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drag-and-drop","dropzonejs","file-upload","ipfs"],"created_at":"2024-08-02T20:01:36.796Z","updated_at":"2026-05-28T18:01:04.435Z","avatar_url":"https://github.com/fiatjaf.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"Instead of uploading the dropped files to an URL, this subclass of [Dropzone.js](http://www.dropzonejs.com/) publishes them to [IPFS](https://ipfs.io/) with [js-ipfs](https://github.com/ipfs/js-ipfs) (no running local nodes needed).\n\nBoth [ipfs](https://www.npmjs.com/package/ipfs) and [dropzone](https://www.npmjs.com/package/dropzone) are peer dependencies.\n\n## Usage\n\n```js\nconst IPFSDropzone = require('ipfs-dropzone')\n\nlet dz = IPFSDropzone('#files', {\n  /*\n    the name of the repo which will store the IPFS blocks in the browser.\n    this name will be used by IPFS to create the IndexedDB databases.\n\n    defaults to \"ipfs-dropzone\"\n  */\n  ipfsRepoName: 'filemap.xyz',\n\n  /*\n    ipfsPath is a function that takes the dropzone file object\n    and returns a string that will be used as the path when calling\n    https://github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#add\n\n    defaults to (file) =\u003e file.name\n  */\n  ipfsPath: file =\u003e file.name\n\n  // all other options you'll normally pass to dropzone go here.\n})\n\ndz.on('success', file =\u003e {\n  /*\n    everywhere the normal dropzone file object will now have a\n    property called \"ipfs\" which contains the result to the call to\n    https://github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#add\n  */\n\n  console.log('file published to ipfs: ' + file.ipfs[0].hash)\n\n  /*\n    your dropzone object will also have the property \"node\", which\n    resolves to the IPFS node the dropzone object is using.\n    it is a Promise because the IPFS node is only initialized at the\n    moment of the first file upload.\n  */\n  dz.node.then(ipfs =\u003e {\n    ipfs.files.cat(file.hash, (err, file) =\u003e {\n      console.log(file.toString('utf-8'))\n    })\n  })\n})\n```\n\n## Information\n\n  * Most normal Dropzone features and events should work, but I'm not sure.\n  * There's no way to cancel the process of adding a file.\n  * I don't know how to publish this package in a way all JS transpilers and bundlers out there can understand. Please help me.\n  * Please read the source if something is unclear. The source is really small.\n\n## What is the LICENSE?\n\nThe MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiatjaf%2Fipfs-dropzone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiatjaf%2Fipfs-dropzone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiatjaf%2Fipfs-dropzone/lists"}