Skip to main content

Peer-to-peer file sharing for JupyterLab - create named shares (drops) or requests (inboxes), get a link, share it. Files served directly from your server; recipients can use a JupyterLab panel or a plain browser.

Project description

jupyterlab_share_files_extension

GitHub Actions npm version PyPI version Total PyPI downloads JupyterLab 4 Brought To You By KOLOMOLO Donate PayPal

If you live in JupyterLab and have ever had to "just send over that dataset" or "could you please upload your CSV somewhere I can grab it" - you know the routine. Email it (too big). Drop it in OneDrive (sync it first, share it, accept the corporate Terms of the Universe). Spin up an S3 bucket (and a meeting). By the time anyone has the file, you've forgotten what you needed it for.

This extension does not try to replace any of that. OneDrive, Dropbox, S3, that one Slack channel called #files-final-FINAL - they remain undefeated for serious file logistics. This is the small, embarrassingly specific tool for the other 90% of the time, when two people on JupyterLab just need to pass a folder back and forth and would prefer not to involve an enterprise.

Create a share (file drop) or request (inbox) from a side panel, copy the link, paste it in chat. Recipients open it in their JupyterLab panel or any plain browser. That is the whole pitch.

Features

  • Shares - read-only drops of files and folders; recipients download
  • Requests - inboxes; recipients upload, organised per uploader
  • Connections - paste someone's link to subscribe to their share or upload to their request
  • Drag-and-drop from the file browser - drop zone (new share), share row (add files), request row (upload)
  • Right-click context menu in the file browser ("Share Files...") and on panel entries ("Copy to Current Folder", "Show in File Browser")
  • Standalone HTML page - link works in any browser, no JupyterLab needed
  • Live upload notifications when someone uploads to your request
  • Symlink-friendly - sharing @shared/... and similar works
  • Delete to trash - panel deletes move files to the OS trash by default (toggle with c.ShareFilesConfig.use_trash)
  • HTTPS-aware links - share URLs follow the scheme the browser is on (HTTPS behind a proxy, HTTP for direct peer-to-peer)
  • Settings toggles - turn shares or requests on/off independently

Requirements

  • JupyterLab >= 4.0.0
  • Python >= 3.9

Install

Developers install via the project Makefile:

make install

End-users install the published package from PyPI:

pip install jupyterlab_share_files_extension

Configuration

Optional, set in jupyter_server_config.py:

c.ShareFilesConfig.shares_dir = "/path/to/storage"  # default: ./uploads
c.ShareFilesConfig.use_trash = True                 # default: True

Security

The link is the credential (40 bits of entropy). HTTPS is inherited from your JupyterHub/Jupyter proxy. Suitable for trusted-channel sharing (Slack, email). No expiry, no PIN.

Uninstall

pip uninstall jupyterlab_share_files_extension

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyterlab_share_files_extension-1.0.10.tar.gz (254.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file jupyterlab_share_files_extension-1.0.10.tar.gz.

File metadata

File hashes

Hashes for jupyterlab_share_files_extension-1.0.10.tar.gz
Algorithm Hash digest
SHA256 3aaaf21c8c7a17a55739ad10550dacd9f201f2080e0027dedc53d012839d239a
MD5 a4bdc02dbb7b9b67964aee7e4a0c55e5
BLAKE2b-256 27b9abad4d3a3c7ecbcc8c4a843ce096308afc8805003796cac09da393c0fd58

See more details on using hashes here.

File details

Details for the file jupyterlab_share_files_extension-1.0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyterlab_share_files_extension-1.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 cdc596600b3d0b2e9cb599c3ef8b86dbe7421b83f36dc700686b8bc307a7aca0
MD5 3cbb0b6c78603aa7bc4574ca3c6a51d5
BLAKE2b-256 e06631c733e8d5bd45881071a245a9ce1051dd5e79e709a4ccc002405df9b907

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page