Upload Module¶
Upload files to S3 bucket.
-
s3_tools.upload.
upload_file_to_key
(bucket: str, key: str, local_filename: str) → str[source]¶ Upload one file from local disk and store into AWS S3 bucket.
- Parameters
bucket (str) – AWS S3 bucket where the object will be stored.
key (str) – Key where the object will be stored.
local_filename (str) – Local file from where the data will be uploaded.
- Returns
The S3 full URL to the file.
- Return type
str
Examples
>>> write_object_from_file( ... bucket="myBucket", ... key="myFiles/music.mp3", ... local_filename="files/music.mp3" ... ) http://s3.amazonaws.com/myBucket/myFiles/music.mp3
-
s3_tools.upload.
upload_files_to_keys
(bucket: str, paths_keys: List[Tuple[str, str]], threads: int = 5) → List[Tuple[str, str, Any]][source]¶ Upload list of files to specific objects.
- Parameters
bucket (str) – AWS S3 bucket where the objects will be stored.
paths_keys (List[Tuple[str, str]]) – List with a tuple of local path to be uploaded and S3 key destination. e.g. [(“Local_Path”, “S3_Key”), (“Local_Path”, “S3_Key”)]
threads (int, optional) – Number of parallel uploads, by default 5.
- Returns
A list with tuples formed by the “Local_Path”, “S3_Key”, and the result of the upload. If successful will have True, if not will contain the error message. Attention, the output list may not follow the same input order.
- Return type
List[Tuple[str, str, Any]]
Examples
>>> upload_files_to_keys( ... bucket="myBucket", ... paths_keys=[ ... ("MyFiles/myFile.data", "myData/myFile.data"), ... ("MyFiles/myMusic/awesome.mp3", "myData/myMusic/awesome.mp3"), ... ("MyFiles/myDocs/paper.doc", "myData/myDocs/paper.doc") ... ] ... ) [ ("MyFiles/myMusic/awesome.mp3", "myData/myMusic/awesome.mp3", True), ("MyFiles/myDocs/paper.doc", "myData/myDocs/paper.doc", True), ("MyFiles/myFile.data", "myData/myFile.data", True) ]
-
s3_tools.upload.
upload_folder_to_prefix
(bucket: str, prefix: str, folder: str, search_str: str = '*', threads: int = 5) → List[Tuple[str, str, Any]][source]¶ Upload local folder to a S3 prefix.
Function to upload all files for a given folder (recursive) and store them into a S3 bucket under a prefix. The local folder structure will be replicated into S3.
- Parameters
bucket (str) – AWS S3 bucket where the object will be stored.
prefix (str) – Prefix where the objects will be under.
folder (str) – Local folder path where files are stored. Prefer to use the full path for the folder.
search_str (str.) – A match string to select all the files to upload, by default “*”. The string follows the rglob function pattern from the pathlib package.
threads (int, optional) – Number of parallel uploads, by default 5
- Returns
A list with tuples formed by the “Local_Path”, “S3_Key”, and the result of the upload. If successful will have True, if not will contain the error message.
- Return type
List[Tuple[str, str, Any]]
Examples
>>> upload_folder_to_prefix( ... bucket="myBucket", ... prefix="myFiles", ... folder="/usr/files", ... ) [ ("/usr/files/music.mp3", "myFiles/music.mp3", True), ("/usr/files/awesome.wav", "myFiles/awesome.wav", True), ("/usr/files/data/metadata.json", "myFiles/data/metadata.json", True) ]