

# 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:  0 = não substituir 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:  0 = não substituir 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\$1file está definido como `1`.