{"id":19135915,"url":"https://github.com/sonalys/file-manager","last_synced_at":"2025-11-13T15:03:10.830Z","repository":{"id":88400265,"uuid":"368982137","full_name":"sonalys/file-manager","owner":"sonalys","description":"A file manager to execute arbitrary pipelines based on regex filters","archived":false,"fork":false,"pushed_at":"2021-05-25T17:06:24.000Z","size":8142,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-13T13:35:59.754Z","etag":null,"topics":["file-upload","poc"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"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/sonalys.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-19T19:37:35.000Z","updated_at":"2022-11-25T17:34:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"f758b384-412a-413f-8147-4df8dc7ffc23","html_url":"https://github.com/sonalys/file-manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sonalys/file-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonalys%2Ffile-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonalys%2Ffile-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonalys%2Ffile-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonalys%2Ffile-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sonalys","download_url":"https://codeload.github.com/sonalys/file-manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonalys%2Ffile-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284236310,"owners_count":26970090,"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-11-13T02:00:06.582Z","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":["file-upload","poc"],"created_at":"2024-11-09T06:32:39.087Z","updated_at":"2025-11-13T15:03:10.796Z","avatar_url":"https://github.com/sonalys.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FILE MANAGER ( BOILERPLATE NAME )\n\nThis software handles file storage, running multiple pipelines that are configured by the user.\nThe files can be retrieved later with all the generated metadata. The user can dynamically add new algorithms to a file pipeline, for generating new metadata for existent and new files.\n\n## Requirements\n\nFile Manager requires docker, since it needs to load all the available scripts, ready to run, and docker eliminates the need of configuration for multiple environments.\n\n## Usages\n\nThe manager can be used to:\n\n* Compress images to HEIC file format.\n* Compress or rename files.\n* Categorize images based on content, using computer vision.\n* Resize and remove opacity from images.\n* Extract text from images using OCR.\n* Extract text from audio files.\n* Segmentate files depending on metadata\n\n## Configuration\n\nThe configuration file uses the following schema:\n\nYou can match using the filename and the save_location, then the service will proceed to run the specified scripts on pipeline, in order.\n\nAll the metadata will be saved under the same path as `$filename.metadata`.\n\nExample:\n  `photo1.jpeg` will have `photo1.jpeg.metadata`\n\n```json\n{\n  \"images\": [\n    \"github.com/file-manager/registry/imagemagick:v0.0.1\"\n  ],\n  \"rules\": [\n    {\n      \"match\": {\n        \"filename\": \"*.(png|bmp|jpg|jpeg)\",\n        \"save_location\": \"/images/*\"\n      },\n      \"pipeline\": [\n        \"object_detection\",\n        \"face_recognition\",\n        \"heic_converter\"\n      ],\n    }\n  ]\n}\n```\n\n## Metadata\n\nThe generated metadata is stored using the following schema:\n\n```json\n{\n  \"object_detection\": {\n    \"last_run\": 213216565465,\n    \"script_version\": 0,\n    \"detected_objects\": [\n      {\n        \"type\": \"notebook\",\n        \"bounding_box\": [120 314 400 563]\n      }\n    ]\n  },\n  \"face_recognition\": {\n    \"last_run\": 213216565789,\n    \"script_version\": 5,\n    \"faces\": [\n      {\n        \"geometry\": [0.2145, 5.2157, 8.2546, 5.8842, 9.1547],\n        \"bounding_box\": [542 402 860 756],\n      }\n    ]\n  },\n}\n```\n\nThe fields `last_run` and `script_version` are common on all metadata files to ensure newer versions can run again.\n\n## Run\n\nTo run the service, simply run `./file-manager -c config.json`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonalys%2Ffile-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonalys%2Ffile-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonalys%2Ffile-manager/lists"}