from storagex.storage import Storage
storage = Storage(width=600, height=600)
# width and height will decide the chunk size ,one chunk size will be `width * height * 3 - 4`
key, meta_info = storage.upload(file_name)
Download file
from storagex.storage import Storage
storage = Storage()
storage.download_file(meta_info_key, file_name)
WorkFlow
Upload Workflow
+----------------------------------------------------------+
| Raw file |
+-----------------------------+----------------------------+
| split to pieces(size is W x H x 3 - header size)
+------------------------------------------+
| | |
+---------v----+ +----------v----+ +------v-----+
| piece 1 | | piece 2 | | piece n |
+---------+----+ +--------+------+ +------+-----+
| | |
| | serialize(make it uploadable, such as to png format)
| | |
+---------v-------------+ +-v---+ +------------------v-----+ +----------------+
| serialized piece 1 | | 2 | | serialized piece n | | meta info data |
+---------+-------------+ +--+--+ +------------------+-----+ +--^---+---------+
| | | | |
| upload and gen key(keys will be save to meta info+-----+ |serialize
| + + |
+---------v------------------v-----------------------v------+ +-----v---------+
| | | |
| backend in cyber space <--+-+ serialized |
| | | | meta info data|
+-----------------------------------------------------------+ | +---------------+
upload serialized meta info data into backend and gen key <+
you need to keep this *key* (meta info data key)
Download Workflow
+------------------------------------------------------------+
| |
| backend in cyber space |
| |
+-----------------+---------------------------^--+-----------+
| get meta info data by key | |
+-----------------v--------------+ | |
| serialized meta info data | | |
+-----------------+--------------+ | |
| unserialize | |
+-----------------v--------------+ | |
| meta info data | | |
+--------------------------------+ | |
this includes all keys of pieces | |
+ | |
| get all pieces | |
+----------------------------+ |
|
|
+-------------------------------+---------------+
| |
| |
| |
v v
+------------------------+ ++-----------------------+
| serialized piece 1 | ... | serialized piece n |
+------------+-----------+ +-------------+----------+
| unserialize |
+------------v-----------+ +-------------v----------+
| piece 1 | ... | piece n |
+-----------+------------+ +-------------+----------+
| join to raw file |
+---------------^----------------+
|
+---------------------------v---------------------------+
| Raw file |
+-------------------------------------------------------+
The Tidelift Subscription provides access to a continuously curated stream of human-researched and maintainer-verified data on open source packages and their licenses, releases, vulnerabilities, and development practices.