davify


Namedavify JSON
Version 1.1.2 PyPI version JSON
download
home_pagehttps://github.com/AlbertWeichselbraun/davify
SummaryDavify uploads files to webdav servers and provides a download link for accessing them.
upload_time2024-04-11 06:56:10
maintainerNone
docs_urlNone
authorAlbert Weichselbraun
requires_python<4.0,>=3.8
licenseGPL3
keywords webdav
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## davify 
Uploads files to a WebDAV server for retrieval via https.

## The problem davify solves
Sending document versions to collaborators is often quite cumbersome. 
Davify (i) uploads files to your WebDAV server (multiple files and directories are put into a .txz archive prior to uploading), (ii) provides a publicly available download link, and (iii) copies this information
into the clipboard.

In addition it keeps track of a file's lifetime and provides scripts for automatically removing files once their lifetime has expired.

## Setup and configuration files:

### Installation

```bash
pipx install davify
```

### Client configuration:
Setup the WebDAV client with
```bash
davify --setup
```
Davify's configuration resides in `~/.davify` and the WebDAV server credentials are stored in your system's keystore. Please find below an example configuration file.

```
[default]
filename_pattern = {random_prefix}{lifetime_str}-{fname}{version_suffix}{ext}
file_url_pattern = {protocol}://example.net/{random_prefix}{lifetime_str}-{fname_quoted}{version_suffix}{ext}
notification_message = {url}\n(Note the file will be available for {lifetime}.)`
```

### Server configuration
Calling `clean-davify-directory` on the server removes expired files. Note that you need to provide the full path to the `clean-davify-directory` binary (use `which clean-davify-directory` to obtain the path).

Example crontab entry:
```cron
# clean davify directory
15 00   * * *   www-data  /root/.local/bin/clean-davify-directory /var/www/davify
```
## Command line parameters
```bash
usage: davify [-h] [--lifetime LIFETIME]
                   [--retrieval-url-pattern RETRIEVAL_URL_PATTERN]
                   [--webdav-file-pattern WEBDAV_FILE_PATTERN]
                   [--file-url-pattern FILE_URL_PATTERN] 
                   [--archive-name ARCHIVE_NAME] [--setup]
                   [fname [fname ...]]

positional arguments:
  fname                 File(s) to davify or directory to upload.

optional arguments:
  -h, --help            show this help message and exit
  --lifetime LIFETIME   Suggested file lifetime in hours (default: 1 week).
                        Zero suggests that the file is never deleted.
  --retrieval-url-pattern RETRIEVAL_URL_PATTERN
                        Pattern to use for the retrieval URL.
  --webdav-file-pattern WEBDAV_FILE_PATTERN
                        Pattern used to create the webdav file.
  --file-url-pattern FILE_URL_PATTERN
                        Patterns used to retrieve the created file
  --archive-name ARCHIVE_NAME, -n ARCHIVE_NAME
                        An optional file name for the created archive.
  --setup               Setup WebDAV connection.
```

## Example call: 

```
albert@myhost:~$ davify transform.py
https://example.net/qOMvcO/transform-15dez-0201.py
(Note the file will be available for 1 week.)
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/AlbertWeichselbraun/davify",
    "name": "davify",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": "webdav",
    "author": "Albert Weichselbraun",
    "author_email": "albert@weichselbraun.net",
    "download_url": "https://files.pythonhosted.org/packages/85/2a/37b5b1b47f97b261602f885a5ae6cd2d4ec30cb23eedeea731b8b131c5af/davify-1.1.2.tar.gz",
    "platform": null,
    "description": "## davify \nUploads files to a WebDAV server for retrieval via https.\n\n## The problem davify solves\nSending document versions to collaborators is often quite cumbersome. \nDavify (i) uploads files to your WebDAV server (multiple files and directories are put into a .txz archive prior to uploading), (ii) provides a publicly available download link, and (iii) copies this information\ninto the clipboard.\n\nIn addition it keeps track of a file's lifetime and provides scripts for automatically removing files once their lifetime has expired.\n\n## Setup and configuration files:\n\n### Installation\n\n```bash\npipx install davify\n```\n\n### Client configuration:\nSetup the WebDAV client with\n```bash\ndavify --setup\n```\nDavify's configuration resides in `~/.davify` and the WebDAV server credentials are stored in your system's keystore. Please find below an example configuration file.\n\n```\n[default]\nfilename_pattern = {random_prefix}{lifetime_str}-{fname}{version_suffix}{ext}\nfile_url_pattern = {protocol}://example.net/{random_prefix}{lifetime_str}-{fname_quoted}{version_suffix}{ext}\nnotification_message = {url}\\n(Note the file will be available for {lifetime}.)`\n```\n\n### Server configuration\nCalling `clean-davify-directory` on the server removes expired files. Note that you need to provide the full path to the `clean-davify-directory` binary (use `which clean-davify-directory` to obtain the path).\n\nExample crontab entry:\n```cron\n# clean davify directory\n15 00   * * *   www-data  /root/.local/bin/clean-davify-directory /var/www/davify\n```\n## Command line parameters\n```bash\nusage: davify [-h] [--lifetime LIFETIME]\n                   [--retrieval-url-pattern RETRIEVAL_URL_PATTERN]\n                   [--webdav-file-pattern WEBDAV_FILE_PATTERN]\n                   [--file-url-pattern FILE_URL_PATTERN] \n                   [--archive-name ARCHIVE_NAME] [--setup]\n                   [fname [fname ...]]\n\npositional arguments:\n  fname                 File(s) to davify or directory to upload.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --lifetime LIFETIME   Suggested file lifetime in hours (default: 1 week).\n                        Zero suggests that the file is never deleted.\n  --retrieval-url-pattern RETRIEVAL_URL_PATTERN\n                        Pattern to use for the retrieval URL.\n  --webdav-file-pattern WEBDAV_FILE_PATTERN\n                        Pattern used to create the webdav file.\n  --file-url-pattern FILE_URL_PATTERN\n                        Patterns used to retrieve the created file\n  --archive-name ARCHIVE_NAME, -n ARCHIVE_NAME\n                        An optional file name for the created archive.\n  --setup               Setup WebDAV connection.\n```\n\n## Example call: \n\n```\nalbert@myhost:~$ davify transform.py\nhttps://example.net/qOMvcO/transform-15dez-0201.py\n(Note the file will be available for 1 week.)\n```\n\n",
    "bugtrack_url": null,
    "license": "GPL3",
    "summary": "Davify uploads files to webdav servers and provides a download link for accessing them.",
    "version": "1.1.2",
    "project_urls": {
        "Homepage": "https://github.com/AlbertWeichselbraun/davify"
    },
    "split_keywords": [
        "webdav"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d8fffdfa8013c740c3e4a52bddb0dd018bce28515f13626e3802c197ecee2534",
                "md5": "df7532990421e836be61a1f427870f01",
                "sha256": "0922fae47988abd796e83529d0d94f21283776e6cdfbbbadad17cdb57166ac88"
            },
            "downloads": -1,
            "filename": "davify-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "df7532990421e836be61a1f427870f01",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 21767,
            "upload_time": "2024-04-11T06:56:07",
            "upload_time_iso_8601": "2024-04-11T06:56:07.990535Z",
            "url": "https://files.pythonhosted.org/packages/d8/ff/fdfa8013c740c3e4a52bddb0dd018bce28515f13626e3802c197ecee2534/davify-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "852a37b5b1b47f97b261602f885a5ae6cd2d4ec30cb23eedeea731b8b131c5af",
                "md5": "cb983c349359d8249c0c265d354f061b",
                "sha256": "d7634de374ff4b636cf46d763fed96d2266938dbf4641c836907841b63b3fc30"
            },
            "downloads": -1,
            "filename": "davify-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "cb983c349359d8249c0c265d354f061b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 20334,
            "upload_time": "2024-04-11T06:56:10",
            "upload_time_iso_8601": "2024-04-11T06:56:10.751690Z",
            "url": "https://files.pythonhosted.org/packages/85/2a/37b5b1b47f97b261602f885a5ae6cd2d4ec30cb23eedeea731b8b131c5af/davify-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-11 06:56:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "AlbertWeichselbraun",
    "github_project": "davify",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "davify"
}
        
Elapsed time: 0.22715s