Skip to main content

UNKNOWN

Project description

dsmsfilepackager
----------------

Add select files or directories to a bundle of files, generate a manifest,
and upload or download from an SFTP server. For use with DSMS.

Please note that filepackages are not thread safe. It is up to you to ensure
that only one process is manipulating a package at any point in time. For this
reason, it's recommended that you use a uuid such as the Celery task ID to
ensure each process has its own space.

How to use when writing a new package::

from dsmsfilepackager.filepackage import DSMSFilePackage
import uuid

fpack = DSMSFilePackage(target_id=111, job_id=13244, uid=uuid.uuid4(),
host="remote_sagenth.example.com",
hostport="1222", username="theuser",
priv_key="/home/theuser/.sagenth/key",
local_root="/tmp/cache",
remote_root="/upload_target")

# register in manifest
fpack.add("myfile.txt")
fpack.add_dir("docs/")

fpack.finish_and_upload() # generate a manifest and upload

Once package generation has finished, the files will be both locally at
/tmp/cache/111/13244/[uuid], as well as on the FTP server under
/upload_target/111/13244/[uuid].

Now, other processes can either access the locally cached files if they're
available, or they'll be fetched via SFTP and moved into the local cache if
not.

How to fetch a previously stored package:

# auto-get remote files, reading from cache when available

>>> fpack = filepackage.fetch(target_id=111, job_id=13244, uid=uuid.uuid4(),
host="remote_sagenth.example.com",
hostport="1222", username="theuser",
priv_key="/home/theuser/.sagenth/key",
local_root="/tmp/cache",
remote_root="/upload_target")
>>> print fpack.manifest.files
["myfile.txt", "docs/readme.txt", "docs/2.py"]
>>> file_info = fpack.manifest.get("myfile.txt")
>>> file_info.size
1246
>>> file_info.sha256
"d8d5d29645ce8552646ad236244304892bb9e0df633e2603a1fa616682e1c431"
>>> file_info.type
"Python script, ASCII text executable"
>> fh = fpack.open("myfile.txt") # will be made available locally

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

dsmsfilepackager-0.1.1.tar.gz (3.9 kB view details)

Uploaded Source

File details

Details for the file dsmsfilepackager-0.1.1.tar.gz.

File metadata

File hashes

Hashes for dsmsfilepackager-0.1.1.tar.gz
Algorithm Hash digest
SHA256 beb782e578ef8256e940448514b090f7e8727fee08eb02b038d5df5c02920a25
MD5 92187decf2016507bef7bd89c242706c
BLAKE2b-256 c7f78e7a957adc97688ae24c93a5a937de0cc117348d55ad4b1ebcf9d22f1948

See more details on using hashes here.

Supported by

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