Earth Engine assets (e.g. images, tables) may be legacy assets (i.e. not associated
with a Cloud Project) or assets associated with a Google
[Cloud
Project](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This guide describes how to use the Asset Manager to upload and/or use
assets associated with a Cloud Project.

## Cloud Asset Manager


The Cloud Asset Manager contains the **Cloud Assets** section,
the **Legacy Assets** section and the **Add A Project** button.

<br />


![Cloud Asset Manager](https://developers.google.com/earth-engine/images/Cloud_asset_manager.png) Figure 1. Cloud Asset Manager of the Earth Engine Code Editor.

<br />


### Cloud Assets


The Cloud Assets section contains assets which belong to any of the
Cloud Projects that are pinned to the Asset Manager. The Cloud Project
which is selected for the Code Editor session (as indicated in the top-right of the
Code Editor) is here by default. Additional projects may be pinned by choosing the
**Add A Project** button and selecting a project in the
**Select a Cloud Project** dialog. The assets within these projects will
be displayed in an initially expanded zippy, with nested folders initially collapsed.

### Legacy Assets


Legacy assets are assets associated with your Earth Engine account
before Earth Engine's Cloud integration.

### Add a Project

Clicking the **Add a Project** button will open the
**Select a Cloud Project** dialog.
![Select a Project dialog](https://developers.google.com/earth-engine/images/Select_a_project.png) Figure 2. Select a Cloud Project dialog.


This dialog which will present a drop down to select a Cloud Project
and show the Earth Engine assets that are present in that project.
Projects which you have pinned previously are displayed as
*Earth Engine Enabled Projects* . Selecting a Cloud Project
in the drop down and clicking **Select** will pin the
project to the Cloud Assets section and display the assets contained
within the project.


Selecting a project that is already pinned will provide
the option to unpin the project instead.

### Uploading assets


Upload assets using the **Upload Assets** button. The uploaded assets
by default will be associated with the project [selected in the Code
Editor](https://developers.google.com/earth-engine/cloud/Projects). If you want the new asset(s) to be associated with a different project, select
a different project through the project picker provided by the upload dialog.

## Managing assets


Assets can be managed through the Code Editor
[Asset Manager](https://developers.google.com/earth-engine/playground#asset-manager-assets-tab) tab, the
[command line](https://developers.google.com/earth-engine/command_line), a client library (for example,
[`ee.data.getAsset`](https://developers.google.com/earth-engine/apidocs/ee-data-getasset)) or via the
[REST API](https://developers.google.com/earth-engine/reference/rest/v1beta/projects.assets) directly.

### Managing asset permissions


To give other users access to your assets for the purpose of reading, writing or full
administrative control, you may set permissions on the asset, the project or both. See
the [Access Control page](https://developers.google.com/earth-engine/cloud/access-control) for details.

## Accessing assets


Asset paths are of the form `projects/${PROJECT_NAME}/assets/${ASSET_NAME}`.
These paths are used in client library constructors, when doing exports through one of the
client libraries, at ingest or upload time and in REST API calls.

### Public assets


Images in the public catalog can be accessed from paths like
`projects/earthengine-public/assets/path/to/asset/asset-id`. For example, here's
a [Landsat](https://developers.google.com/earth-engine/datasets/catalog/landsat) scene:

```
projects/earthengine-public/assets/LANDSAT/LC08/C02/T1_RT/LC08_001004_20140609
```

Note that `PROJECT_NAME` in this example is `earthengine-public`.
These paths can be passed directly to constructors such as `Image`,
`ImageCollection` or `FeatureCollection`. You also pass asset
paths to the REST API.
[Here](https://developers.google.com/earth-engine/reference/Quickstart#accessing-and-testing-your-credentials)
is a very simple example from the REST quickstart.

### Personal assets


To access an Earth Engine asset stored in a project you own or have permission to view,
set `PROJECT_NAME` to the ID of the project that owns the asset. For example:

```
projects/my-ee-enabled-project-id/assets/my-asset-id
```


In this example, `my-ee-enabled-project-id` is the name of a project through which
assets have previously been uploaded or created. See the
[Projects](https://developers.google.com/earth-engine/cloud/projects) page for more information on how to
enable the Earth Engine API on a Cloud Project.

### Legacy assets


Legacy assets are assets stored in legacy `users/` or `projects/`
folders. When accessing these assets, the `PROJECT_NAME` is
`earthengine-legacy`. For example:

```
projects/earthengine-legacy/assets/users/user-name/my-asset-id
```

## Accessing images in Cloud Storage


You can access Cloud Optimized GeoTIFFs (COGs) directly from a Cloud Storage bucket using
[`ee.Image.loadGeoTIFF()`](https://developers.google.com/earth-engine/apidocs/ee-image-loadgeotiff).
You can also create COG-backed Earth Engine assets as described in the
[COG registration guide](https://developers.google.com/earth-engine/guides/cog_registration); for an
overview, see [COGs in Earth Engine](https://developers.google.com/earth-engine/guides/cog_overview).