Update Folder Properties
Use the following script to update the name and description of an existing folder in Files. Ensure that you:
- Replace
<private_key_path>
with the path to your private key.
- Replace
Cat Videos
with the name of the folder you want to update properties for.
- Replace
Cat videos and images
with the new name you want to give the folder.
- Replace
Images and videos of cats
with the description you want to give the folder.
from encord import EncordUserClient
from encord.orm.storage import FoldersSortBy
# Instantiate Encord client using your SSH private key
user_client = EncordUserClient.create_with_ssh_private_key(
ssh_private_key_path="<private_key_path>"
)
# Define search parameters
folder_name_to_find = "Cat Videos"
search_result = user_client.find_storage_folders(
search=folder_name_to_find,
dataset_synced=None,
order=FoldersSortBy.NAME,
desc=False,
page_size=1000
)
# Fetch the folder assuming it's the first one in the search result
folder = next(search_result, None)
if folder is None:
print(f"No folder found with name {folder_name_to_find}")
else:
# Define new properties for the folder
new_name = "Cat videos and images"
new_description = "Images and videos of cats"
# Update the folder properties
folder.update(name=new_name, description=new_description)
print(f"Folder '{folder_name_to_find}' updated to new name '{new_name}' and description '{new_description}'")
Move Folders
You can move folders between different parent folders in Files, including moving them to the root (no parent). The following script demonstrates how a folder with the name Folder Name 3
is moved between 2 different target folders. The script must be modified to suit your needs.
Ensure that you:
- Replace
<private_key_path>
with the path to your private key.
- Replace
Folder Name 1
with the name of a target folder.
- Replace
Folder Name 2
with the new name of another target folder.
- Replace
Folder Name 3
with the name of the folder that is moved.
from encord import EncordUserClient
from encord.storage import FoldersSortBy
# Instantiate Encord client by substituting the path to your private key
user_client = EncordUserClient.create_with_ssh_private_key(
ssh_private_key_path="<private_key_path>"
)
# Search for folders by name using the find_storage_folders function
folder_1 = next(user_client.find_storage_folders(search="Folder Name 1", dataset_synced=False, order=FoldersSortBy.NAME, desc=False, page_size=1000))
folder_2 = next(user_client.find_storage_folders(search="Folder Name 2", dataset_synced=False, order=FoldersSortBy.NAME, desc=False, page_size=1000))
folder_3 = next(user_client.find_storage_folders(search="Folder Name 3", dataset_synced=False, order=FoldersSortBy.NAME, desc=False, page_size=1000))
# Move folder_3 under folder_1
folder_3.move_to_folder(folder_1.uuid)
# Move folder_3 under folder_2
folder_3.move_to_folder(folder_2.uuid)
# Move folder_3 to root folder (passing None moves it to the root level)
folder_3.move_to_folder(None)
Delete Folders
Use the following script to delete a specific folder from Files. Ensure that you:
- Replace
<private_key_path>
with the path to your private key.
- Replace
Specific Folder Name
with the name of the folder you want to delete.
from encord import EncordUserClient
from encord.storage import FoldersSortBy
# Instantiate Encord client by substituting the path to your private key
user_client = EncordUserClient.create_with_ssh_private_key(
ssh_private_key_path="<private_key_path>"
)
# Define the search criteria for the folder
folder_search_criteria = "Specific Folder Name"
# Retrieve the target folder
try:
folder_to_delete = next(user_client.find_storage_folders(search=folder_search_criteria, dataset_synced=None, order=FoldersSortBy.NAME, desc=False, page_size=1000))
print(f"Deleting folder {folder_to_delete.uuid}")
# Delete the folder and verify it cannot be accessed anymore
folder_to_delete.delete()
print("Folder deleted successfully.")
try:
# Try to refetch the folder to verify it's been deleted
user_client.get_storage_folder(folder_to_delete.uuid)
print("Error: Folder still accessible after deletion.")
except Exception as e:
print(f"Verification successful: {str(e)}")
except StopIteration:
print("No folder found with the specified criteria.")