The ffx component storage
commands can copy files to and from Fuchsia components on a device.
A Fuchsia component can provide storage space on a device if the component uses one of the following storage capabilities: data
, cache
and tmp
. All the examples in this guide select, by default, the data
storage capability, which provides persistent storage on the device. For other storage types (cache
and tmp
), you can use the --provider
flag with the ffx component storage
commands.
Before you can upload files to (or download files from) a Fuchsia component, you first need to identify the instance ID of your target component on the device. To discover a component's instance ID, you can use the ffx component show
command, for example:
$ ffx component show stash_secure Moniker: /core/stash_secure URL: fuchsia-pkg://fuchsia.com/stash#meta/stash_secure.cm Type: CML static component Component State: Resolved Instance ID: c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4 ...
The example above shows that the instance ID of the stash_secure
component is c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4
.
Once you identify your target component‘s instance ID, you can use this identifier (as a parameter to the ffx component storage
commands) to access the component’s storage space on the device.
To download a file from a Fuchsia device to your host machine, run the following command:
ffx component storage copy <INSTANCE_ID>::<PATH_TO_FILE> <DESTINATION>
Replace the following:
INSTANCE_ID
: The instance ID of your target component.c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4
.PATH_TO_FILE
: The path to a file on the target component./my-example.file
or /my/path/my-example.file
.DESTINATION
: The path to a local directory where you want to save the file.The example command below downloads my-example.file
from the target component to the host machine:
$ ffx component storage copy c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4::/my-example.file ./my-example.file
To upload a file from your host machine to a Fuchsia device, run the following command:
ffx component storage copy <SOURCE> <INSTANCE_ID>::<PATH_TO_FILE>
Replace the following:
SOURCE
: The path to a file you want to copy to the device.INSTANCE_ID
: The instance ID of your target component.c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4
.PATH_TO_FILE
: The path and filename on the target component where you want to save the file./my-example.file
or /my/path/my-example.file
.The example command below uploads my-example.file
from the host machine to the target component running on the device:
$ ffx component storage copy ./my-example.file c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4::/my-example.file
To list all directories and files in a component's storage, run the following command:
ffx component storage list <INSTANCE_ID>::<PATH>
Replace the following:
INSTANCE_ID
: The instance ID of your target component.c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4
.PATH
: A path on the target component./
or /my/path/
.The example command below shows all directories and files in the root (/
) directory of the target component:
$ ffx component storage list c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4::/ my-example.file dir_01 dir_02 dir_03
To create a new directory in a component's storage, run the following command:
ffx component storage make-directory <INSTANCE_ID>::<NEW_PATH>
Replace the following:
INSTANCE_ID
: The instance ID of your target component.c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4
.PATH
: The name of a new directory on the target component./my-new-path
.The example command below shows creates a new directory named my-new-path
on the target component:
$ ffx component storage make-directory c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4::/my-new-path