FileStorageUpload
is a widget in Supervisely's web interface that allows users to upload files directly to Team files by given path. With this widget, users can easily transfer data from their local machine to Team files without the need for any external tools or commands. The widget supports multiple file uploads and progress tracking, making the process of transferring data efficient and streamlined.
FileStorageUpload(
team_id=435,
path="folder",
change_name_if_conflict=False,
widget_id=None,
)
Parameters | Type | Description |
---|---|---|
team_id |
int |
Team ID |
path |
str |
Set destination path in Team files to upload files/folders |
change_name_if_conflict |
bool |
Whether change destination folder name if exists |
widget_id |
str |
ID of the widget |
Team ID
type: int
Set destination path in Team files to upload files/folders
type: str
default value: "folder"
file_upload = FileStorageUpload(
team_id=435,
path="folder",
)
Whether change destination folder name if exists.
type: bool
default value: False
file_upload = FileStorageUpload(
team_id=435,
path="folder",
change_name_if_conflict=True
)
ID of the widget
type: str
default value: None
Attributes and Methods | Description |
---|---|
path |
Get or set path property to upload files. |
set_path(path: str) |
Set path to upload files to. |
get_uploaded_paths() |
Get list of path in Team files where files/folders uploaded. |
You can find this example in our Github repository:
supervisely-ecosystem/ui-widgets-demos/controls/007_file_storage_upload/src/main.py
import os
from dotenv import load_dotenv
import supervisely as sly
from supervisely.app.widgets import Button, Card, Container, Field
from supervisely.app.widgets import FileStorageUpload, Flexbox, Input, Text
First, we load environment variables with credentials and init API for communicating with Supervisely Instance:
load_dotenv("local.env")
load_dotenv(os.path.expanduser("~/supervisely.env"))
api = sly.Api()
team_id = sly.env.team_id()
file_upload_1 = FileStorageUpload(
team_id=team_id,
path="folder",
)
file_upload_2 = FileStorageUpload(
team_id=team_id,
path="folder",
change_name_if_conflict=True,
)
upload_1 = Field(
title="Existing directory",
description="Upload files/folders to an existing directory in Team files",
content=file_upload_1,
)
upload_2 = Field(
title="New path",
description="Enter a new path and set it by clicking on button",
content=file_upload_2,
)
input = Input(placeholder="Please enter path")
button_change_path = Button("Change path name")
button_get_paths_1 = Button("Get upoaded paths")
button_get_paths_2 = Button("Get upoaded paths")
text = Text()
Prepare a layout for app using Card
widget with the content
parameter and place widget that we've just created in the Container
widget.
upload_container = Container([upload_1, upload_2])
btns_box = Flexbox([button_change_path, button_get_paths_1, button_get_paths_2])
controls_container = Container([input, btns_box, text])
card = Card(
title="File Storage Upload",
content=Container([upload_container, controls_container]),
)
layout = Container(widgets=[card])
Create an app object with layout parameter.
app = sly.Application(layout=layout)
@button_change_path.click
def change_path():
path = input.get_value()
file_upload_2.set_path(path)
file_upload_1.set_path(path)
text.status = "success"
text.text = "Upload path has been changed."
@button_get_paths_1.click
def show_uploaded_paths():
paths = file_upload_1.get_uploaded_paths()
text.status = "text"
text.text = "<br>".join(paths)
@button_get_paths_2.click
def show_uploaded_paths():
paths = file_upload_2.get_uploaded_paths()
text.status = "text"
text.text = "<br>".join(paths)