---
title: "Partilhar imagens entre projetos Public Cloud"
description: "Saiba como partilhar imagens entre projetos Public Cloud com a ajuda do OpenStack"
url: https://docs.ovhcloud.com/pt/guides/public-cloud/compute/share-images-between-projects
lang: pt
lastUpdated: 2025-04-01
---
# Partilhar imagens entre projetos Public Cloud

## Objetivo

Pode ser necessário partilhar uma imagem [Instance backup](/pt/guides/public-cloud/compute/save-an-instance.md) ou uma imagem [Volume backup](/pt/guides/public-cloud/compute/volume-backup.md) entre vários projetos Public Cloud.

Com OpenStack, poderá partilhar uma imagem entre vários projetos, mesmo que não pertençam à mesma conta.

Esta funcionalidade oferece muitas possibilidades, mas também acarreta riscos. Por isso, é importante compreender os seus princípios.

Por exemplo, se deseja partilhar uma imagem de um projeto A com um projeto B (na mesma conta ou numa conta diferente), aplicam-se as seguintes regras:

- As imagens só podem ser partilhadas na mesma região. Por exemplo, uma imagem criada no projeto A na região GRA11 estará apenas disponível para o projeto B na mesma região GRA11.
- A imagem fica fisicamente ligada ao projeto A. O projeto B só dispõe de uma « autorização de acesso » a esta imagem.
- Se o Projeto A eliminar o acesso à imagem (eliminação da ACL, supressão da imagem, supressão do projeto para faturas não pagas, etc.), as instâncias que são executadas a partir desta imagem no Projeto B podem deixar de funcionar devido a problemas de migração ou de reconstrução.

Por isso, é importante ter isto em mente antes de nos envolvermos nesta configuração.

Para mais informações, consulte a [documentação oficial OpenStack](https://docs.openstack.org/image-guide/share-images.html).

**Este manual explica-lhe como partilhar imagens entre um ou vários projetos, mantendo a configuração e o estado da imagem.**

## Requisitos

Antes de seguir estes passos, recomendamos que consulte primeiro este guia:

- [Preparar o ambiente para a utilização da API OpenStack](/pt/guides/public-cloud/cross-functional/compute-prepare-openstack-api-environment.md)

Necessitará igualmente de:

- Dispor de uma [Instância Public Cloud](https://www.ovhcloud.com/pt/public-cloud/) na sua conta OVHcloud
- [Ter criado um utilizador OpenStack](/pt/guides/public-cloud/cross-functional/create-and-delete-a-user.md)

:::info
Este manual refere-se à utilização de [OpenStack Client](https://docs.openstack.org/python-openstackclient/latest/).
:::

## Instruções

### Partilhar uma imagem

Em primeiro lugar, execute o seguinte comando para listar as imagens existentes:

```bash
$ openstack image list --private
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | pfsense |
```

:::warning
Para ser partilhada, uma imagem deve primeiro ser colocada em « visibilidade partilhada » (_shared visibility_).
:::

```bash
$ openstack image set --shared <Image_UUID>
```

Pode executar o seguinte comando para listar as suas imagens que podem ser partilhadas com outro projeto:

```bash
$ openstack image list --shared
9a0fbdc5-****-****-****-8d404a1313ba 	pfsense
```

### Adicionar um projeto a uma imagem

O próximo passo é adicionar o UUID de outro projeto como um membro da imagem. No nosso exemplo abaixo, adicionamos o UUID do « Projeto B ».

```bash
$ openstack image add project 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba <UUID_Project_B>
+------------+--------------------------------------+
| Field      | Value                                |
+------------+--------------------------------------+
| created_at | 2020-01-27T13:26:52Z                 |
| image_id   | 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba |
| member_id  | <UUID_Project_B>                      |
| schema     | /v2/schemas/member                   |
| status     | pending                              |
| updated_at | 2020-01-30T15:18:00Z                 |
+------------+--------------------------------------+
```

Depois de fazer isso, verifique a solicitação no projeto B:

```bash
$ openstack image member list <Image_UUID>
+--------------------------------------+----------------------------------+----------+
| Image ID | Member ID | Status |
+--------------------------------------+----------------------------------+----------+
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | <UUID_Project_B> | pending |
+--------------------------------------+----------------------------------+----------+
```

Se o pedido de partilha estiver em estado `pending`, deve aceitá-lo:

```bash
$ openstack image set --accept 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba
+--------------------------------------+----------------------------------+----------+
| Image ID                             | Member ID                        | Status   |
+--------------------------------------+----------------------------------+----------+
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | eff99684d8294dbe8c2d4dd7407073f1 | accepted |
+--------------------------------------+----------------------------------+----------+
```

Depois de o pedido de partilha ser aceite, verifique se pode ver e aceder à imagem:

```bash
$ openstack image show 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                                                                  |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum         | 1b19c9e5bdd36b9010de0164dd8b245e                                                                                                                                                       |
| container_format | bare                                                                                                                                                                                   |
| created_at       | 2018-05-08T15:38:50Z                                                                                                                                                                   |
| disk_format      | raw                                                                                                                                                                                    |
| file             | /v2/images/9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba/file                                                                                                                                   |
| id               | 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba                                                                                                                                                   |
| min_disk         | 0                                                                                                                                                                                      |
| min_ram          | 0                                                                                                                                                                                      |
| name             | pfsense                                                                                                                                                                                |
| owner            | 35c9ee22e5c84c1097a5652b0abcbab3                                                                                                                                                       |
| properties       | direct_url='swift+config://ref1/glance/9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba', locations='[{'url': 'swift+config://ref1/glance/9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba', 'metadata': {}}]' |
| protected        | False                                                                                                                                                                                  |
| schema           | /v2/schemas/image                                                                                                                                                                      |
| size             | 10737418240                                                                                                                                                                            |
| status           | active                                                                                                                                                                                 |
| tags             |                                                                                                                                                                                        |
| updated_at       | 2018-05-08T15:53:57Z                                                                                                                                                                   |
| virtual_size     | None                                                                                                                                                                                   |
| visibility       | private                                                                                                                                                                                |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
```

### Verificar os membros de uma imagem

Para visualizar todos os projetos com acesso à imagem, a partir do projeto source (neste caso o projeto A), execute este comando:

```bash
$ openstack image member list 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba
+--------------------------------------+----------------------------------+----------+
| Image ID                             | Member ID                        | Status   |
+--------------------------------------+----------------------------------+----------+
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | <project C>                      | pending  |
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | <project B>                      | accepted |
+--------------------------------------+----------------------------------+----------+
```

### Excluir um membro de uma imagem ou anular a partilha de uma imagem

No projeto source (projeto A), pode suprimir um membro da partilha:

```bash
$ openstack image remove project `<image>` <UUID_Project_To_Delete>
```

## Saiba mais

[Transferir a cópia de segurança de uma instância de um datacenter para outro](/pt/guides/public-cloud/compute/transfer-instance-backup-from-one-datacentre-to-another.md).

Fale com nossa [comunidade de utilizadores](https://community.ovhcloud.com/).
