A unofficial Python API client to the Blomp cloud.
Project description
blomp-api
A unofficial Python API client to the Blomp cloud.
Table of contents
- Instalation
- Examples
- Other information
- License
- Source Code
- Changelog
Instalation
Blomp API can be installed with pip:
pip install blomp-api
Examples
Getting started with the API
from blomp_api import Blomp
# Log in to your Blomp account
blomp = Blomp("youremail@example.com", "yourpassword")
# Get your cloud root directory
root = blomp.get_root_directory()
Example directory structure for the next examples
(root directory)
├── folder1/
│ ├── file1.ext
│ └── file2.ext
├── folder2/
│ ├── folder3/
│ │ └── file3.ext
│ └── file4.ext
├── file5.txt
└── file6.ext
Access files and folders
# Getting a folder using the get_folder_by_name method
folder1 = root.get_folder_by_name("folder1")
# Getting a file using the get_file_by_name method
file5 = root.get_file_by_name("file5.ext")
# Getting a file from a tuple with all files in the folder
# root.files -> (File(file5.ext), File(file6.ext))
file6 = root.files[-1]
# Getting a folder from a tuple with all subfolders in the folder
# root.subfolders -> (Folder(folder1), Folder(folder2))
folder2 = root.subfolders[1]
# All folders are iterable
# tuple(folder) is equivalent to folder.subfolders+folder.files
# tuple(folder2) -> (Folder(folder3), File(file4.ext))
folder3 = tuple(folder2)[0]
# All folders are subscriptable
# folder[i] is equivalent to tuple(folder)[i]
file1 = folder1[0]
file4 = folder2[1]
Downloading a file and getting download progress
# NOTE: All folder and file variables are the same as in previous examples
# Specifying a directory to save the file
# The following file will be saved as "/path/to/save/file1.ext"
thread1, monitor1 = file1.download("/path/to/save")
# Waiting for file1.ext to complete download
thread1.join()
# Specifying a directory and file name
# The following file will be saved as "/path/to/save/f4.ext"
# If a directory is not specified, then the file will be saved
# in the same directory where the program is running.
# This time we will let the following download occur in parallel
file4.download("/path/to/save/f4.ext")
# Specifying an open file object
with open("file5.ext", "wb") as f5:
thread5 = file5.download(f5)[0]
thread5.join()
# Nothing specified
# The following file will be saved as "file6.ext"
thread6, monitor6 = file6.download()
# Monitoring "file6.ext" download progress
while thread6.is_alive():
loaded = monitor6.loaded
total = monitor6.total
progress = int(monitor6.progress)*100
print(f"\r{loaded} of {total} bytes downloaded ({progress}%)")
Uploading a file and getting upload progress
# NOTE: All folder and file variables are the same as in previous examples
# Uploading a file to root directory
# The file will be saved in the root directory as "file7.ext"
thread7, monitor7 = root.upload("/path/to/file/file7.ext")
# Monitoring "file7.ext" upload progress
while thread7.is_alive():
loaded = monitor7.loaded
total = monitor7.total
progress = int(monitor7.progress)*100
print(f"\r{loaded} of {total} bytes uploaded ({progress}%)")
# Uploading a file from a file object to "folder1"
# The file will be saved in the folder1 as file8.ext
with open("/path/to/file/file8.ext", "rb") as f8:
thread8, monitor8 = folder1.upload(f8)
thread8.join()
# Upload specifying file name
folder3.upload("path/to/file/file9_1.ext", file_name="file9.ext")[0].join()
# Uploading a file when there is already another file
# with the same name in folder.
# If a file of the same name is found and the "replace_if_exists"
# attribute is False (default), FileExistsError is raised.
folder3.upload("path/to/file/file9.ext", replace_if_exists=True)
Other operations with folders
All folder and file variables in the following examples are the same as in the previous examples.
Create a new folder
# Creating a new folder in "folder3" com nome "folder4"
folder3.create_folder("folder4")
Renaming a folder
# Renaming "folder4" to "folder5"
folder4 = folder3.get_folder_by_name("folder4")
folder4.safe_rename("folder5")
print(folder4.name) # Will be printed "folder5"
Cutting or copying files and folders
folder5 = folder3.get_folder_by_name("folder5")
file7 = root.get_file_by_name("file7.ext")
# The following operations apply to both files and folders
# Copying a file to a folder
folder5.paste(file7)
# Cutting a folder to another folder
folder1.paste(folder5, cut=True)
folder1.reload()
folder5.reload()
Deleting files and folders
# Deleting a file
file8 = folder1.get_file_by_name("file8.ext")
folder1.delete(file8)
# Deleting a folder
folder1.delete(folder5)
# Deleting a file by name (also works with folder names)
folder3.delete("file9.ext")
folder1.reload()
folder3.reload()
Other operations with files
All folder and file variables in the following examples are the same as in the previous examples.
Renaming a file
file6.rename("file66.ext")
print(file6.name) # Will be printed "file66.ext"
Sharing a file
# Enabling sharing of "file1.ext" and getting the link
file1_link = file1.share()
# Enabling sharing of "file2.ext" and sending the link to an email list
file2 = folder1.get_file_by_name("file2.ext")
file2_link = file2.share(["email1@example.com", "email2@example.com"])
# Disabling sharing of "file1.ext"
file1.share_switch_off()
# Enabling sharing of "file1.ext"
file1.share_switch_on()
Other information
For more information, type into your Python shell:
help(<blomp_object>)
Where <blomp_object>
can be:
- A
Blomp
instance- Example:
from blomp import Blomp blomp = Blomp("youremail@example.com", "yourpassword") help(blomp)
- Example:
- A
Folder
object- Example:
root = blomp.get_root_directory() help(root)
- Example:
- A
File
object- Example:
file = root.get_file_by_name("<file_name>") help(file)
- Example:
License
This package is released under the MIT License. See the LICENSE file for details.
Source Code
Source code is available on GitHub.
Changelog
Changelog is available on GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file blomp_api-1.0.4.tar.gz
.
File metadata
- Download URL: blomp_api-1.0.4.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb6c9a8b0a460c37e36b96cd60848dff13c0ad7621e0a4d51a3f04e34c6874de |
|
MD5 | 90388751b7c5b54876fbe274883640dd |
|
BLAKE2b-256 | a330569c373cf2f76c4e9f4db338062883fdb7ac9f8e58219c00ae7a514c54ab |
File details
Details for the file blomp_api-1.0.4-py3-none-any.whl
.
File metadata
- Download URL: blomp_api-1.0.4-py3-none-any.whl
- Upload date:
- Size: 17.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9940f903e3f1dfafad63d06a5dcd04e86f1d9d1d51ea3634253dcb8d869414d |
|
MD5 | 90eb3d81215844606404acf5af2a780c |
|
BLAKE2b-256 | 5f66e913af724ead87d197925f5f2f2f994d92067ed3d8cdac0157a883d95636 |