tflink
A simple and easy-to-use Python library for uploading files to tmpfile.link and retrieving download links.
📦 View on PyPI | 📖 Documentation | 🐛 Report Issues
Features
- 🚀 Simple API - Upload files with just 3 lines of code
- 🔒 Anonymous & Authenticated - Support for both upload modes
- 📦 Dual Download Links - Standard and URL-encoded formats
- 🎯 Type Hints - Full type annotations for better IDE experience
- ✅ Fully Tested - Comprehensive test coverage
- 🐍 Python 3.8+ - Modern Python support
Quick Start
Installation
pip install tflink
Upload a File
from tflink import TFLinkClient
# Create client and upload
client = TFLinkClient()
result = client.upload('document.pdf')
# Get download link
print(f"Download: {result.download_link}")
That's it! 🎉
Examples
Anonymous Upload
from tflink import TFLinkClient
client = TFLinkClient()
result = client.upload('document.pdf')
print(f"File: {result.file_name}")
print(f"Size: {result.size:,} bytes")
print(f"Link: {result.download_link}")
Authenticated Upload
from tflink import TFLinkClient
client = TFLinkClient(
user_id='YOUR_USER_ID',
auth_token='YOUR_AUTH_TOKEN'
)
result = client.upload('document.pdf')
print(f"Download: {result.download_link}")
Error Handling
from tflink import TFLinkClient
from tflink.exceptions import TFLinkError
client = TFLinkClient()
try:
result = client.upload('document.pdf')
print(f"Success: {result.download_link}")
except TFLinkError as e:
print(f"Error: {e}")
Download Links
tflink provides two download link formats:
download_link- Human-readable, perfect for sharing with usersdownload_link_encoded- URL-safe, ideal for API integrations
result = client.upload('file.pdf')
# For users
print(result.download_link)
# https://d.tmpfile.link/public/2025-07-31/uuid/file.pdf
# For APIs
print(result.download_link_encoded)
# https://d.tmpfile.link/public%2F2025-07-31%2Fuuid%2Ffile.pdf
Both links point to the same file. Use download_link for most cases.
Documentation
- 📖 Getting Started Guide - Detailed tutorials and examples
- 📚 API Reference - Complete API documentation
- 🛠️ Developer Guide - For contributors and maintainers
API Overview
TFLinkClient
TFLinkClient(
user_id: str | None = None,
auth_token: str | None = None,
base_url: str = "https://tmpfile.link",
timeout: int = 300,
max_file_size: int = 104857600 # 100MB default
)
Methods:
upload(file_path, filename=None)- Upload a file (max 100MB by default)is_authenticated()- Check authentication status
File Size Limit:
- Default: 100MB (104,857,600 bytes)
- Files exceeding the limit are rejected before upload
- Saves time and bandwidth
UploadResult
Attributes:
file_name- Uploaded file namedownload_link- Standard download URLdownload_link_encoded- URL-encoded download URLsize- File size in bytesfile_type- MIME typeuploaded_to- Upload destination
Exceptions
TFLinkError- Base exceptionFileNotFoundError- File not foundUploadError- Upload failedAuthenticationError- Invalid credentialsNetworkError- Network request failed
Development
Install Development Dependencies
pip install -e ".[dev]"
Run Tests
make test # Run tests
make test-cov # Run with coverage
make quick-test # Quick functionality test
Code Quality
make format # Format code with black
make lint # Run linters (flake8, mypy)
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Changelog
See CHANGELOG.md for version history and changes.
License
MIT License - see LICENSE file for details.
Links
- PyPI: https://pypi.org/project/tflink/
- GitHub: https://github.com/tflink-tmpfile/tflink
- Documentation: https://github.com/tflink-tmpfile/tflink/tree/main/docs
- tmpfile.link: https://tmpfile.link
- Issues: https://github.com/tflink-tmpfile/tflink/issues
- Email: pypi@tmpfile.link
Support
- 📧 Email: pypi@tmpfile.link
- 🐛 Issues: GitHub Issues
- 📖 Docs: Documentation
Made with ❤️ for the tmpfile.link community
Release files for tflink 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tflink-0.2.1.tar.gz | 10.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tflink-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.7 kB
Release files / tflink-0.2.1.tar.gz
| Download URL | tflink-0.2.1.tar.gz |
|---|---|
| Size | 10.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b613475d85193b26b5d4d5e80ec2ee7f3c276bf4a20390bd61ab35ea72dc4be
|
|
BLAKE2b-256 checksum How to use checksums |
8ffc0e7f407cedb8e1d4178feab4296b494574ad8cba22ca1869927ff36f08ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / tflink-0.2.1-py3-none-any.whl
| Download URL | tflink-0.2.1-py3-none-any.whl |
|---|---|
| Size | 8.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ea79e528e420890f3f339ceaafa66787f20fb22933a38f67b1ec417e65b196e4
|
|
BLAKE2b-256 checksum How to use checksums |
beea598ec9cdf5a8b97b8c2bf06384e820f2624ac4ab707d1c432151cdfe01fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|