{"id":34457570,"url":"https://github.com/beavailable/share","last_synced_at":"2026-01-16T20:23:39.190Z","repository":{"id":45709521,"uuid":"369050867","full_name":"beavailable/share","owner":"beavailable","description":"Share and receive files effortlessly over HTTP","archived":false,"fork":false,"pushed_at":"2026-01-12T11:48:23.000Z","size":1813,"stargazers_count":51,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-12T19:14:27.114Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/beavailable.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-05-20T01:58:23.000Z","updated_at":"2026-01-12T11:48:27.000Z","dependencies_parsed_at":"2023-12-15T11:28:55.028Z","dependency_job_id":"8b25b14e-949f-4dde-9c5c-84a5d542b9d5","html_url":"https://github.com/beavailable/share","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/beavailable/share","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beavailable%2Fshare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beavailable%2Fshare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beavailable%2Fshare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beavailable%2Fshare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beavailable","download_url":"https://codeload.github.com/beavailable/share/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beavailable%2Fshare/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28482267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-12-22T23:00:40.600Z","updated_at":"2026-01-16T20:23:39.178Z","avatar_url":"https://github.com/beavailable.png","language":"Python","funding_links":[],"categories":["Files and Directories"],"sub_categories":["File Sync/Sharing"],"readme":"# share\nThis is a command-line file sharing tool, which has just a single file and is easy to use.\n\n## Features\n- Crossing multiple platforms\n- Sharing directories, files and texts\n- Receiving files and texts\n- Password sharing\n- Basic authentication support\n- Range request support\n- TLS support\n- Zstd compression support (requires [python-zstandard](https://github.com/indygreg/python-zstandard), optional and not needed on Python 3.14+)\n- QR code support (requires [python-qrcode](https://github.com/lincolnloop/python-qrcode), optional)\n\n## Usage\n```\nusage: share.py [-b ADDRESS] [-p PORT] [-s] [-r] [-a] [-z] [-t] [-P [PASSWORD]] [-R RULE]\n                [-q] [-h] [-v] [--certfile CERTFILE] [--keyfile KEYFILE]\n                [--keypass KEYPASS]\n                [arguments ...]\n\npositional arguments:\n  arguments             a directory, files or texts\n\ngeneral options:\n  -b, --bind ADDRESS    bind address [default: 0.0.0.0]\n  -p, --port PORT       port [default: 8888]\n  -s, --share           share mode (default mode)\n  -r, --receive         receive mode, can be used with -s option (only for directory)\n  -a, --all             show all files, including hidden ones (only for directory)\n  -z, --archive         share the directory itself as an archive (only for directory)\n  -t, --text            for text\n  -P, --password [PASSWORD]\n                        access password, if no PASSWORD is specified, the environment\n                        variable SHARE_PASSWORD will be used\n  -R, --auth-rule RULE  a rule for authentication, can be used multiple times [default: *]\n  -q, --qrcode          show the qrcode\n  -h, --help            show this help message and exit\n  -v, --version         show version number and exit\n\ntls options:\n  --certfile CERTFILE   cert file\n  --keyfile KEYFILE     key file\n  --keypass KEYPASS     key password\n```\n\n### Auth Rules\nAn auth rule consists of two components: a pattern and an optional comma-separated list of HTTP methods, separated by a `:`.  \nHere are a few examples:\n- `*`, `*:GET,POST,PUT` or `/*:GET,POST,PUT` matches all paths for `GET`, `POST` and `PUT`\n- `/foo/*:GET` matches paths start with `/foo/` and the path `/foo.tar.zst` for `GET`\n- `*bar:POST,PUT` matches paths end with `bar` for `POST` and `PUT`\n- `/foo[ab]*:GET` matches paths start with `/fooa` or `/foob`   for `GET`\n\nFor full documentation on the pattern syntax, please see [fnmatch](https://docs.python.org/3/library/fnmatch.html).\n\n## Screenshot\n![img](https://raw.githubusercontent.com/beavailable/share/refs/heads/main/screenshot.gif)\n\n## Installation\n\n### Windows\nYou can download the latest release from the [Release page](https://github.com/beavailable/share/releases).\n\n### Debian \u0026 Ubuntu\nInstall via the OBS repo (see [obs-repo](https://github.com/beavailable/obs-repo) for setup).\n\n### Other Distros\nJust [download](https://raw.githubusercontent.com/beavailable/share/refs/heads/main/share.py) the script.\n\n## Tips\n- If you're sharing just one file, you can use the shortcut name `file` to access it：\n    ```bash\n    http://{host}:{port}/file\n\n    # to save with the original filename\n    wget --content-disposition http://{host}:{port}/file\n    curl -OJ http://{host}:{port}/file\n    ```\n- To get an archive of a folder, you can add the `.tar.zst` extension to the url:\n    ```bash\n    http://{host}:{port}/any/folder.tar.zst\n    ```\n- If you want to upload files to the sharing server with `curl`, you can use:\n    ```bash\n    # POST\n    curl -F file=@/path/to/file http://{host}:{port}\n    # create new folders at the same time\n    curl -F file=@/path/to/file http://{host}:{port}/custom/path/\n\n    # PUT\n    curl -T /path/to/file http://{host}:{port}\n    # create new folders at the same time\n    curl -T /path/to/file http://{host}:{port}/custom/path/\n    # with a different filename\n    curl -T /path/to/file http://{host}:{port}/custom/path/custom-filename\n    ```\n- If you want to use HTTP Basic authentication, remember the username is always \"user\".\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeavailable%2Fshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeavailable%2Fshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeavailable%2Fshare/lists"}