aisquare-pipe-dropbox
Dropbox source and sink connectors for aisquare.pipe.
Install
pip install aisquare-pipe-dropbox
Or for development (from the repo root):
cd connectors/dropbox
pip install -e ".[dev]"
Configuration
Two authentication modes are supported:
# Mode 1: Access token (quick testing)
config = {"access_token": "sl.XXXXX"}
# Mode 2: Refresh token (recommended — auto-refreshes)
config = {
"app_key": "YOUR_APP_KEY",
"app_secret": "YOUR_APP_SECRET",
"refresh_token": "YOUR_REFRESH_TOKEN",
}
Usage
Pull files from Dropbox
from aisquare.pipe import Pipeline, PullParams
from aisquare_pipe_dropbox import DropboxSource, DropboxSink
source = DropboxSource()
params = PullParams(params={
"path": "/documents",
"recursive": True,
"extensions": [".pdf", ".docx"],
"limit": 10,
})
for envelope in source.pull(config, params):
print(f"{envelope.metadata['filename']} ({envelope.content_type})")
Push files to Dropbox
from aisquare.pipe import DataEnvelope, PushParams
sink = DropboxSink()
envelope = DataEnvelope(
content_type="text/plain",
data="Hello from aisquare.pipe!",
source_id="my-app",
metadata={"filename": "hello.txt"},
)
result = sink.push(envelope, config, PushParams(params={"target_path": "/uploads"}))
print(f"Uploaded: {result.ref}")
Pipeline (source to sink)
from aisquare.pipe import Pipeline
source = DropboxSource()
sink = DropboxSink()
pipeline = Pipeline(source=source, sink=sink)
result = pipeline.run({
"dropbox-source": {"access_token": "SOURCE_TOKEN"},
"dropbox-sink": {"access_token": "SINK_TOKEN"},
})
print(f"Transferred {result.success_count} files")
Features
- Automatic MIME type detection from filenames
- Streaming for large files (>50MB download, >140MB chunked upload)
- Upload sessions for files up to 350GB
- Automatic retry with exponential backoff on rate limits (429)
- OAuth2 refresh token support with auto-refresh
- Folder listing with pagination and recursive support
Metadata
Release files for aisquare-pipe-dropbox 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aisquare_pipe_dropbox-0.1.0.tar.gz | 11.2 kB | Without provenance | Details for aisquare_pipe_dropbox-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aisquare_pipe_dropbox-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for aisquare_pipe_dropbox-0.1.0-py3-none-any.whl |
Total release size: 19.4 kB
Release files / aisquare_pipe_dropbox-0.1.0.tar.gz
| Download URL | aisquare_pipe_dropbox-0.1.0.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3b730fc9a041ffc514afbf56679c5ef33bcff4135570d932abbe71e92607123b
|
|
BLAKE2b-256 checksum How to use checksums |
4a272118bebd911f120753c2828aae54d28d0e2cf062015602f4616820b6b056
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.9
|
Release files / aisquare_pipe_dropbox-0.1.0-py3-none-any.whl
| Download URL | aisquare_pipe_dropbox-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e332c23b3c27eca8c8c83fb96b9ffee5196e9854a7bf94370dfee570111bfb45
|
|
BLAKE2b-256 checksum How to use checksums |
c31deccd3e3ce10394b8ff4d44a1099491eaa0e1f0a01b641a3a0f2f6c6abc4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.9
|
Security for aisquare-pipe-dropbox 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.