davify


Namedavify JSON
Version 1.2.0 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-06-12 18:41:00
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/ce/c0/be4b4b3ca235d41b601cb73f1f74d9094a030dd3dbf493377e4f2bf509cf/davify-1.2.0.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.2.0",
    "project_urls": {
        "Homepage": "https://github.com/AlbertWeichselbraun/davify"
    },
    "split_keywords": [
        "webdav"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "effc8511431980764d42b23fd9043e27578bd408ac529d295b030276426a4def",
                "md5": "149c7c3fcdd54349ce442a60c22cd7bd",
                "sha256": "53e3c909da8054f816a6c214ce4dcb3b24cd849a216ee89ad6e8547d15a44d10"
            },
            "downloads": -1,
            "filename": "davify-1.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "149c7c3fcdd54349ce442a60c22cd7bd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 21828,
            "upload_time": "2024-06-12T18:40:58",
            "upload_time_iso_8601": "2024-06-12T18:40:58.926670Z",
            "url": "https://files.pythonhosted.org/packages/ef/fc/8511431980764d42b23fd9043e27578bd408ac529d295b030276426a4def/davify-1.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cec0be4b4b3ca235d41b601cb73f1f74d9094a030dd3dbf493377e4f2bf509cf",
                "md5": "365bb82862f2a6ffbdf9ca2fc6518f69",
                "sha256": "3e1f74654458919bc776dc25adb027d6f02903b9b8d867bb6c09dc35aa927336"
            },
            "downloads": -1,
            "filename": "davify-1.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "365bb82862f2a6ffbdf9ca2fc6518f69",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 20426,
            "upload_time": "2024-06-12T18:41:00",
            "upload_time_iso_8601": "2024-06-12T18:41:00.258939Z",
            "url": "https://files.pythonhosted.org/packages/ce/c0/be4b4b3ca235d41b601cb73f1f74d9094a030dd3dbf493377e4f2bf509cf/davify-1.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-12 18:41:00",
    "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.29101s