{"id":31923087,"url":"https://github.com/rocketchat/filestore-migrator","last_synced_at":"2025-10-27T00:33:55.938Z","repository":{"id":44561192,"uuid":"136372586","full_name":"RocketChat/filestore-migrator","owner":"RocketChat","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-31T01:14:11.000Z","size":33,"stargazers_count":14,"open_issues_count":3,"forks_count":6,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-06-19T06:56:43.234Z","etag":null,"topics":["cloud","hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RocketChat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-06T18:49:46.000Z","updated_at":"2024-06-02T17:28:06.000Z","dependencies_parsed_at":"2023-10-15T11:15:21.864Z","dependency_job_id":"62ed060f-5ce2-4bb8-aba7-aa6e19f74400","html_url":"https://github.com/RocketChat/filestore-migrator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RocketChat/filestore-migrator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketChat%2Ffilestore-migrator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketChat%2Ffilestore-migrator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketChat%2Ffilestore-migrator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketChat%2Ffilestore-migrator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RocketChat","download_url":"https://codeload.github.com/RocketChat/filestore-migrator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketChat%2Ffilestore-migrator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017232,"owners_count":26086016,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"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":["cloud","hacktoberfest"],"created_at":"2025-10-13T23:43:56.323Z","updated_at":"2025-10-13T23:44:01.306Z","avatar_url":"https://github.com/RocketChat.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# filestore-migrator\n\n**Provided as-is. Make use of backups and use at your own risk**\n\n**filestore-migrator** is a tool to move files uploaded to a Rocket.Chat instance between object storage providers. Currently we support as targets any object storage provider compatible with the S3 API, as well as, the local file system and Google Cloud Storage. GridFS is also compatible as a source target only.\n\n## Installation\n\nIf you are installing **filestore-migrator** from source, make sure that you have a recent version of the `go` runtime installed and that you `$GOPATH` is in your OS system-wide `PATH`. Then, clone the repo to `$GOPATH/src/github.com/RocketChat/filestore-migrator` or use `go get github.com/RocketChat/filestore-migrator`. Now you only need to run the following commands on the tool source directory:\n\n```\nmake build\nfilestore-migrator --help\n```\n\n## Usage\n\n```\nUsage of filestore-migrator:\n  -action string\n    \tType of action to me performed by the tool (migrate, upload, download ) (default \"download\")\n  -config string\n    \tConfig File full path. Defaults to current folder\n  -databaseUrl string\n    \tRocket.Chat database connection string\n  -destinationType string\n    \tDestination storage provider (s3, google, fs) (default \"s3\")\n  -destinationUrl string\n    \tDestination connection string\n  -detectDestination\n    \tAutodetect the destionation using the Rocket.Chat configuration\n  -detectSource\n    \tAutodetect the source target using the Rocket.Chat configuration (default true)\n  -skipErrors\n    \tSkip on error\n  -sourceType string\n    \tSource storage provider (s3, google, gridfs, filesystem) (default \"s3\")\n  -sourceUrl string\n    \tSource connection string\n  -store string\n    \tName of the storage to be used in the operation (default \"Uploads\")\n  -tempLocation string\n    \tTemporary file location (default \"/tmp/filestore-migrator\")\n  -verbose\n    \tEnable verbose logs (default true)\n```\n\n**filestore-migrator** accepts parameters either via flags or via a yaml configuration file, which is examplified in the `cmd` directory. Be aware that each URL type flag have specific patterns, as shown below:\n\n- `databaseUrl`: Rocket.Chat database connection string. Use the official supported mongo connection string-\n- `sourceUrl`: Source storage provider (s3, google, gridfs, filesystem)\n    - **gridfs**: Automatically retrieved from the Rocket.Chat instance database\n    - **s3**: `http://${endpoint}/${bucket_name}?ssl=${ssl}\u0026region=${region}\u0026accessId=${accessId}\u0026accessKey=${accessKey}`\n    - **google**: `${json_key}/${bucket_name}`\n    - **filesystem**: Normal OS path\n- `destinationUrl`: Destination storage provider (s3, google, fs)\n    - **s3**: `http://${endpoint}/${bucket_name}?ssl=${ssl}\u0026region=${region}\u0026accessId=${accessId}\u0026accessKey=${accessKey}`\n    - **google**: `${json_key}/${bucket_name}`\n    - **filesystem**: Normal OS path\n\n## Running with Docker\n\nFor those who prefer using **filestore-migrator** via docker, we provide a `Dockerfile` on the root of the directory. First you will need to\ncompile the image using `make docker`. After the build process, execute with your parameters:\n\n```\ndocker run filestore-migrator:latest -databaseUrl=mongodb://mongo:27017/rocketchat ...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocketchat%2Ffilestore-migrator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frocketchat%2Ffilestore-migrator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocketchat%2Ffilestore-migrator/lists"}