defmodule LivebookWeb.Hub.FileSystemFormComponent do use LivebookWeb, :live_component alias Livebook.FileSystem alias Livebook.FileSystems @impl true def update(assigns, socket) do {file_system, assigns} = Map.pop!(assigns, :file_system) mode = mode(file_system) button = button(file_system) title = title(file_system) file_system = file_system || %FileSystem.S3{hub_id: assigns.hub.id} changeset = FileSystems.change_file_system(file_system) socket = assign(socket, assigns) {:ok, assign(socket, file_system: file_system, changeset: changeset, mode: mode, title: title, button: button, error_message: nil )} end @impl true def render(assigns) do ~H"""
Configure an AWS S3 bucket as a Livebook file storage. Many storage services offer an S3-compatible API and those work as well.
You may leave Access Key fields empty. In such cases, they will be automatically read from your environment variables, AWS credentials, or Amazon EC2/ECS metadata.
<% else %> <.password_field field={f[:access_key_id]} label="Access Key ID" /> <.password_field field={f[:secret_access_key]} label="Secret Access Key" />
Start Livebook with LIVEBOOK_AWS_CREDENTIALS environment
variable set if you want to automatically read credentials from
environment variables, AWS credentials, or Amazon EC2/ECS metadata.