

# Transferência de arquivos entre o RDS for SQL Server e o Amazon S3
<a name="Appendix.SQLServer.Options.S3-integration.using"></a>

É possível usar os procedimentos armazenados do Amazon RDS para baixar e carregar arquivos entre o Amazon S3 e a instância de banco de dados do RDS. Também é possível usar os procedimentos armazenados do Amazon RDS para listar e excluir arquivos na instância do RDS.

Os arquivos que você baixa e carrega no S3 são armazenados na pasta `D:\S3`. Essa é a única pasta que pode ser usada para acessar seus arquivos. É possível organizar seus arquivos em subpastas, que são criadas para você ao incluir a pasta de destino durante o download.

Alguns dos procedimentos armazenados exigem que você forneça um nome de recurso da Amazon (ARN) ao bucket e arquivo do S3. O formato do ARN é `arn:aws:s3:::{{amzn-s3-demo-bucket}}/file_name`. O Amazon S3 não exige um número de conta ou região da AWS nos ARNs.

As tarefas de integração do S3 são executadas sequencialmente e compartilham a mesma fila como tarefas nativas de restauração e backup nativos. É possível ter no máximo duas tarefas em andamento a qualquer momento nesta fila. Pode demorar até cinco minutos para que o processamento da tarefa comece.

## Baixar arquivos de um bucket do Amazon S3 em uma instância de banco de dados SQL Server
<a name="Appendix.SQLServer.Options.S3-integration.using.download"></a>

Para baixar arquivos de um bucket do S3 bucket em uma instância de banco de dados do RDS for SQL Server, use o procedimento armazenado do Amazon RDS `msdb.dbo.rds_download_from_s3` com os parâmetros a seguir.


| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
| `@s3_arn_of_file` | NVARCHAR | – | Obrigatório | O ARN do S3 do arquivo para download, por exemplo: `arn:aws:s3:::{{amzn-s3-demo-bucket}}/mydata.csv` | 
| `@rds_file_path` | NVARCHAR | – | Optional | O caminho do arquivo para a instância do RDS: Se não especificado, o caminho será `D:\S3\{{<filename in s3>}}`. O RDS oferece suporte a caminhos absolutos e relativos. Se você deseja criar uma subpasta, inclua-a no caminho do arquivo. | 
| `@overwrite_file` | INT | 0 | Optional | Substitua o arquivo existente: <br />0 = não substituir<br />1 = substituir | 

É possível baixar arquivos sem uma extensão de arquivo e arquivos com as seguintes extensões: .bcp, .csv, .dat, .fmt, .info, .lst, .tbl, .txt e .xml.

**nota**  
Arquivos com a extensão .ispac são têm suporte para download quando o SQL Server Integration Services está habilitado. Para obter mais informações sobre como habilitar o SSIS, consulte [SQL Server Integration Services](Appendix.SQLServer.Options.SSIS.md).  
Arquivos com as seguintes extensões têm suporte para download quando o SQL Server Analysis Services está habilitado: .abf, .asdatabase, .configsettings, .deploymentoptions, .deploymenttargets e .xmla. Para obter mais informações sobre como habilitar o SSAS, consulte [SQL Server Analysis Services](Appendix.SQLServer.Options.SSAS.md).

O exemplo a seguir mostra o procedimento armazenado para baixar arquivos do S3. 

```
exec msdb.dbo.rds_download_from_s3
	    @s3_arn_of_file='arn:aws:s3:::{{amzn-s3-demo-bucket}}/{{bulk_data.csv}}',
	    @rds_file_path='D:\S3\{{seed_data\data.csv}}',
	    @overwrite_file={{1}};
```

A operação de exemplo `rds_download_from_s3` cria uma pasta chamada `seed_data` em `D:\S3\`, se a pasta não existir ainda. Depois disso, o exemplo baixa o arquivo de origem `bulk_data.csv` do S3 para um novo arquivo chamado `data.csv` na instância de banco de dados. Se o arquivo existia anteriormente, ele será substituído porque o parâmetro `@overwrite_file` está definido como `1`.

## Fazer upload de arquivos de uma instância de banco de dados SQL Server para um bucket do Amazon S3
<a name="Appendix.SQLServer.Options.S3-integration.using.upload"></a>

Para fazer upload de arquivos de uma instância de banco de dados do RDS for SQL Server para um bucket do S3, use o procedimento armazenado do Amazon RDS `msdb.dbo.rds_upload_to_s3` com os parâmetros a seguir.


| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
| `@s3_arn_of_file` | NVARCHAR | – | Obrigatório | O ARN do S3 do arquivo a ser criado no S3, por exemplo: `arn:aws:s3:::{{amzn-s3-demo-bucket}}/mydata.csv` | 
| `@rds_file_path` | NVARCHAR | – | Obrigatório | O caminho de arquivo do arquivo para fazer upload no S3. Caminhos relativos e absolutos têm suporte. | 
| `@overwrite_file` | INT | – | Optional | Substitua o arquivo existente: <br />0 = não substituir<br />1 = substituir | 

O exemplo a seguir faz upload do arquivo chamado `data.csv` do local especificado em `D:\S3\seed_data\` para um arquivo `new_data.csv` no bucket do S3 especificado pelo ARN.

```
exec msdb.dbo.rds_upload_to_s3 
		@rds_file_path='D:\S3\{{seed_data\data.csv}}',
		@s3_arn_of_file='arn:aws:s3:::{{amzn-s3-demo-bucket}}/{{new_data.csv}}',
		@overwrite_file={{1}};
```

Se o arquivo existia antes no S3, ele será substituído porque o parâmetro @overwrite\_file está definido como `1`.