{"id":20886909,"url":"https://github.com/storj-thirdparty/driver-ipfs","last_synced_at":"2026-05-17T04:35:30.917Z","repository":{"id":54088287,"uuid":"268510431","full_name":"storj-thirdparty/driver-ipfs","owner":"storj-thirdparty","description":"Proof-of-concept that allows file data to be stored across IPFS and Storj.  Use this driver to host file pointers on IPFS while uploading and downloading blobs using the Storj protocol.","archived":false,"fork":false,"pushed_at":"2021-03-09T14:52:15.000Z","size":563,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-19T11:16:07.447Z","etag":null,"topics":["driver","ipfs"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/storj-thirdparty.png","metadata":{"files":{"readme":"README.assets/HOME.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-01T12:03:23.000Z","updated_at":"2024-09-29T11:01:28.000Z","dependencies_parsed_at":"2022-08-13T06:40:22.786Z","dependency_job_id":null,"html_url":"https://github.com/storj-thirdparty/driver-ipfs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storj-thirdparty%2Fdriver-ipfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storj-thirdparty%2Fdriver-ipfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storj-thirdparty%2Fdriver-ipfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storj-thirdparty%2Fdriver-ipfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/storj-thirdparty","download_url":"https://codeload.github.com/storj-thirdparty/driver-ipfs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243268088,"owners_count":20263803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["driver","ipfs"],"created_at":"2024-11-18T08:18:26.924Z","updated_at":"2026-05-17T04:35:30.890Z","avatar_url":"https://github.com/storj-thirdparty.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Data Flow Diagram Upload\r\n\r\n![](https://github.com/storj-thirdparty/driver-IPFS/blob/master/README.assets/data-flow-upload.drawio.png)\r\n\r\n## Data Flow Diagram Download\r\n\r\n![](https://github.com/storj-thirdparty/driver-IPFS/blob/master/README.assets/data-flow-download.drawio.png)\r\n\r\n## Work Flow Diagram Upload\r\n\r\n![](https://github.com/storj-thirdparty/driver-IPFS/blob/master/README.assets/work-flow-upload.drawio.png)\r\n\r\n## Work Flow Diagram Download\r\n\r\n![](https://github.com/storj-thirdparty/driver-IPFS/blob/master/README.assets/work-flow-download.drawio.png)\r\n\r\n## Config Files\r\n\r\nThere are two config files that contain Storj network and IPFS connection information. The tool is designed so you can specify a config file as part of your tooling/workflow.\r\n\r\n##### `ipfs_property.json`\r\n\r\nInside the `./config` directory there is a `ipfs_property.json` file, with following information about your IPFS instance:\r\n\r\n* hostName \t:- Host Name connect to IPFS\r\n* port\t   \t:- Port Number connect to IPFS\r\n* path\t   \t:- Path of file to be uploaded\r\n* chunkSize\t:- Size of chunks to be created for uploading\r\n\r\n##### `storj_config.json`\r\n\r\nInside the `./config` directory a `storj_config.json` file, with Storj network configuration information in JSON format:\r\n\r\n* key - This is a storj ipfs private key used to encrypt data being uploaded to Storj.\r\n* apiKey - API Key created in Storj Satellite GUI (mandatory)\r\n* satelliteURL - Storj Satellite URL (mandatory)\r\n* encryptionPassphrase - Storj Encryption Passphrase (mandatory)\r\n* bucketName - Name of the bucket to upload data into (mandatory)\r\n* uploadPath - Path on Storj Bucket to store data (optional) or \"/\" (mandatory)\r\n* serializedAccess - Serialized access shared while uploading data used to access bucket without API Key (mandatory)\r\n* allowDownload - Set *true* to create serialized access with restricted download (mandatory while using *share* flag)\r\n* allowUpload - Set *true* to create serialized access with restricted upload (mandatory while using *share* flag)\r\n* allowList - Set *true* to create serialized access with restricted list access\r\n* allowDelete - Set *true* to create serialized access with restricted delete\r\n* notBefore - Set time that is always before *notAfter*\r\n* notAfter - Set time that is always after *notBefore*\r\n\r\n##### `storj_download.json`\r\n\r\nInside the `./config` directory there is a `storj_download.json` file, with following information about your file to be downloaded:\r\n\r\n* hash \t\t\t:- Hash of file to be download\r\n* downloadPath\t:- Port Number connect to IPFS\r\n* key \t\t\t:- This is the same storj ipfs private key used to decrypt data uploaded to Storj earlier.\r\n\r\n\r\n## Run\r\n\r\nThe following flags  can be used with the `store` command:\r\n\r\n* `accesskey` - Connects to Storj network using instead of Serialized Access Key instead of API key, satellite url and encryption passphrase.\r\n* `shared` - Generates a restricted shareable serialized access with the restrictions specified in the Storj configuration file.\r\n\r\nThe following flags  can be used with the `download` command:\r\n\r\n* `accesskey` - Connects to Storj network using instead of Serialized Access Key instead of API key, satellite url and encryption passphrase.\r\n\r\nOnce you have built the project run the following commands:\r\n\r\n##### Get help\r\n\r\n```\r\n$ ./driver-IPFS --help\r\n```\r\n\r\n##### Check version\r\n\r\n```\r\n$ ./driver-IPFS --version\r\n```\r\n\r\n##### Connect to IPFS and upload the files using their corresponding hash to Storj\r\n\r\n```\r\n$ ./driver-IPFS store --ipfs \u003cpath_to_ipfs_config_file\u003e --storj \u003cpath_to_storj_config_file\u003e\r\n```\r\n\r\n##### Connect to IPFS and upload the files using their corresponding hash to Storj bucket using Access Key\r\n\r\n```\r\n$ ./driver-IPFS store --accesskey\r\n```\r\n\r\n##### Connect to IPFS and upload the files using their corresponding hash to Storj and generate a Shareable Access Key based on restrictions in `storj_config.json`\r\n\r\n```\r\n$ ./driver-IPFS store --share\r\n```\r\n\r\n##### Connect to IPFS and download the files using their corresponding hash from Storj\r\n\r\n```\r\n$ ./driver-IPFS download --ipfs \u003cpath_to_ipfs_config_file\u003e --storj \u003cpath_to_storj_config_file\u003e --storjDown \u003cpath_to_storj_download_config_file\u003e\r\n```\r\n\r\n##### Connect to IPFS and download the files using their corresponding hash from Storj bucket using Access Key\r\n\r\n```\r\n$ ./driver-IPFS download --accesskey\r\n```\r\n\r\n\r\n\r\n##  Testing\r\n\r\nThe project has been tested on the following operating systems:\r\n\r\n```\r\n* Windows\r\n\t* Version: 10 Pro\r\n\t* Processor: Intel(R) Core(TM) i3-5005U CPU @ 2.00GHz 2.00GHz\r\n\r\n* macOS Catalina\r\n\t* Version: 10.15.4\r\n\t* Processor: 2.5 GHz Dual-Core Intel Core i5\r\n\r\n* ubuntu\r\n\t* Version: 16.04 LTS\r\n\t* Processor: AMD A6-7310 APU with AMD Radeon R4 Graphics × 4\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstorj-thirdparty%2Fdriver-ipfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstorj-thirdparty%2Fdriver-ipfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstorj-thirdparty%2Fdriver-ipfs/lists"}