> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/products/pt-br/web-scraper-api/features/result-processing-and-storage/cloud-storage.md).

# Armazenamento em nuvem

Recupere seus resultados extraídos diretamente no seu S3, GCS, OSS ou outro armazenamento compatível com S3.

Os resultados do job do Scraper API são armazenados em nosso armazenamento. Você pode obter seus resultados do nosso armazenamento ao `GET`ndo o `/results` endpoint.

Como alternativa, podemos enviar os resultados para o seu armazenamento em nuvem. Dessa forma, você não precisa fazer solicitações extras para buscar os resultados – tudo vai diretamente para o seu bucket de armazenamento.

{% hint style="info" %}
A integração com armazenamento em nuvem funciona apenas com [**Push-Pull**](/products/pt-br/web-scraper-api/integration-methods/push-pull.md) método de integração.
{% endhint %}

Atualmente, oferecemos suporte a estes serviços de armazenamento em nuvem:

* [**Google Cloud Storage**](#google-cloud-storage)
* [**Amazon S3**](#amazon-s3)
* [**Alibaba Cloud Object Storage Service (OSS)**](#alibaba-cloud-object-storage-service-oss)
* [**BytePlus Torch Object Storage (TOS)**](#byteplus-tos)
* [**Outro armazenamento compatível com S3**](#other-s3-compatible-storage)

Se você quiser usar um tipo diferente de armazenamento, entre em contato com seu gerente de conta para discutir o cronograma de entrega do recurso.

O caminho de upload é assim: `YOUR_BUCKET_NAME/job_ID.json`. Você encontrará o ID do job na resposta que recebe de nós após enviar um job.

#### Entrada

<table><thead><tr><th>Parâmetro</th><th width="187.33333333333331">Descrição</th><th>Valores válidos</th></tr></thead><tbody><tr><td><code>storage_type</code></td><td>Seu tipo de armazenamento em nuvem.</td><td><p><code>gcs</code> (Google Cloud Storage);</p><p><code>s3</code> (AWS S3); <code>tos</code> (BytePlus TOS);</p><p><code>s3_compatible</code> (qualquer armazenamento compatível com S3).</p></td></tr><tr><td><code>storage_url</code></td><td>Nome/URL do seu bucket de armazenamento em nuvem.</td><td><ul><li>Qualquer <code>s3</code> , <code>gcs</code> , ou <code>tos</code> nome do bucket;</li><li>Qualquer <code>compatível com S3</code> URL de armazenamento.</li></ul></td></tr></tbody></table>

## **Google Cloud Storage**

O payload abaixo faz o Web Scraper API raspar `https://example.com` e colocar o resultado em um bucket do Google Cloud Storage.

```json
{
    "source": "universal",
    "url": "https://example.com",
    "storage_type": "gcs",
    "storage_url": "bucket_name/path"
}
```

Para que os resultados do seu job sejam enviados para o seu bucket do Google Cloud Storage, configure permissões especiais para o nosso serviço como mostrado abaixo:

{% stepper %}
{% step %}
**Crie uma função personalizada**

<div align="left"><img src="https://1795063165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-32292235b253d2435d5e0a8d88558c068872956d%2Fgcs-1.png?alt=media" alt=""></div>
{% endstep %}

{% step %}
**Adicione `storage.objects.create` permissão**

<div align="left"><img src="https://1795063165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-815bad910c08ed706d3df43ddb20fff0f0563d6d%2Fgcs-2.png?alt=media" alt=""></div>
{% endstep %}

{% step %}
**Atribua-a à Oxylabs**

Na **campo Novos membros** informe o seguinte **e-mail da conta de serviço da Oxylabs**:

```
oxyserps-storage@oxyserps-storage.iam.gserviceaccount.com
```

<div align="left"><img src="https://1795063165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-df5b74908cc6943c8d620b5e14487f2d003ebe43%2Fgcs-3.png?alt=media" alt=""></div>
{% endstep %}
{% endstepper %}

## **Amazon S3**

O payload abaixo faz o Web Scraper API raspar `https://example.com` e coloque o resultado em um bucket do Amazon S3.

```json
{
    "source": "universal",
    "url": "https://example.com",
    "storage_type": "s3",
    "storage_url": "bucket_name/path"
}
```

Para que os resultados do seu job sejam enviados para o seu bucket do Amazon S3, configure permissões de acesso para o nosso serviço. Para fazer isso, acesse [**https://s3.console.aws.amazon.com/**](https://s3.console.aws.amazon.com/) → **`S3`** → **`Armazenamento`** → **`Nome do bucket`**` `` ``(se você não tiver um, crie um novo) ` → **`Permissões`** → **`Política do bucket`**.

<div align="left"><img src="https://1795063165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-1c27676a6e925e4a8c257cf422e991c8a6a1af2c%2Fs3_bucket_policy.png?alt=media" alt=""></div>

Você pode encontrar a política do bucket anexada abaixo ou na área de exemplo de código.

{% file src="/files/84c463db620bbf6d7d2c55b109d8ab03aaf6bccf" %}
política do bucket S3
{% endfile %}

Não se esqueça de alterar o nome do bucket em `YOUR_BUCKET_NAME`. Esta política nos permite gravar no seu bucket, dar acesso aos arquivos enviados a você e saber a localização do bucket.

```json
{
    "Version": "2012-10-17",
    "Id": "Policy1577442634787",
    "Statement": [
        {
            "Sid": "Stmt1577442633719",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::324311890426:user/oxylabs.s3.uploader"
            },
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME"
        },
        {
            "Sid": "Stmt1577442633719",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::324311890426:user/oxylabs.s3.uploader"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
        }
    ]
}
```

## Alibaba Cloud Object Storage Service (OSS)

O payload abaixo faz o Web Scraper API raspar `https://example.com` e colocar o resultado em um bucket do Alibaba Cloud OSS.

```json
{
    "source": "universal",
    "url": "https://example.com",
    "storage_type": "s3_compatible",
    "storage_url": "https://ACCESS_KEY_ID:ACCESS_KEY_SECRET@BUCKET_NAME.oss-REGION.aliyuncs.com/FOLDER_NAME"
}
```

### Montando a URL de armazenamento <a href="#forming-the-storage-url" id="forming-the-storage-url"></a>

Formato da URL de armazenamento:

```http
https://ACCESS_KEY_ID:ACCESS_KEY_SECRET@BUCKET_NAME.oss-REGION.aliyuncs.com/FOLDER_NAME
```

{% hint style="warning" %}
Atualmente, **não podemos enviar para a raiz do bucket**. Forneça um nome de pasta específico para seus uploads.
{% endhint %}

Aqui é onde você encontrará o `BUCKET_NAME` e `oss-REGION` do seu bucket:

<figure><img src="https://1795063165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-3258197766d6326f572b9230603b3f700738db36%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

### Criando o Access Key e o Secret <a href="#creating-the-access-key-and-secret" id="creating-the-access-key-and-secret"></a>

Para usar a interface compatível com S3 com o Alibaba OSS, você precisa criar o `ACCESS_KEY_ID` e `ACCESS_KEY_SECRET` conforme mostrado abaixo. Para mais informações, consulte [![](https://img.alicdn.com/tfs/TB1ugg7M9zqK1RjSZPxXXc4tVXa-32-32.png)Como usar SDKs do Amazon S3 para acessar o OSS](https://www.alibabacloud.com/help/en/oss/developer-reference/use-amazon-s3-sdks-to-access-oss?spm=a2c63.p38356.0.i1).

{% stepper %}
{% step %}
Acesse o **menu da conta AccessKey**

<div align="left"><figure><img src="https://1795063165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-7a0c00eac6fd02fed28c7be5a5522985de3625d5%2Fimage.png?alt=media" alt="" width="422"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Faça login no **RAM console**

Acesse o [RAM console](https://ram.console.aliyun.com/) usando uma **conta Alibaba Cloud** ou um **usuário RAM** com direitos administrativos.
{% endstep %}

{% step %}
Vá para **Identidades** → **Usuários** no painel de navegação à esquerda
{% endstep %}

{% step %}
Selecione **Criar usuário** e use o **RAM User AccessKey:**

<div align="left"><figure><img src="https://1795063165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-e06b15f92c10028d2f5c368321821a90abf01f3f%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure></div>

<div align="left"><figure><img src="https://1795063165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-4103046af7ce401cd189cd53f238fddf41b64ab5%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**Conceda permissões ao usuário RAM**

O usuário RAM recém-criado não tem permissões. Você deve conceder **AliyunOSSFullAccess** permissões ao usuário RAM. Então, o usuário RAM poderá acessar os recursos necessários da Alibaba Cloud. Para mais informações, consulte [Conceder permissões a usuários RAM](https://www.alibabacloud.com/help/en/ram/user-guide/grant-permissions-to-the-ram-user#task-187800).

<div align="left"><figure><img src="https://1795063165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-6d76a9af42bd9f8eaabdbee6c4baadd5824a0a09%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Obtenha seu **AccessKey ID** e **AccessKey Secret**

Quando as permissões forem concedidas, volte para a **Autenticação** seção e, na **AccessKey** seção, selecione **Criar AccessKey**. Escolha criar uma Access Key para um **serviço de terceiros**. Você verá então um `ACCESS_KEY_ID` e `ACCESS_KEY_SECRET`, que você pode usar em suas solicitações.
{% endstep %}
{% endstepper %}

### Limites de taxa do Alibaba OSS <a href="#alibaba-oss-ratelimits" id="alibaba-oss-ratelimits"></a>

Ao fazer uploads concorrentes para o Alibaba OSS, é possível atingir os limites de taxa da conta/bucket, e os uploads começarão a expirar com o seguinte erro:

<div align="left"><figure><img src="https://1795063165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-8c6734c7968642444e43843fb1f200f0ab739c81%2Fimage.png?alt=media" alt="" width="563"><figcaption></figcaption></figure></div>

Nesse caso, entre em contato com o suporte do Alibaba OSS para aumentar seus limites de taxa do OSS.

## BytePlus TOS

Você pode enviar resultados raspados diretamente para um bucket do BytePlus Torch Object Storage (TOS).

Para uma conexão bem-sucedida, você precisará de:

* Um bucket TOS configurado corretamente.
* Sua access key e secret key.
* Um endpoint compatível com S3.

Você pode encontrar uma lista de todos os endpoints S3 disponíveis na documentação oficial da BytePlus [documentação](https://docs.byteplus.com/en/docs/tos/docs-region-and-endpoint).

### Exemplo

O payload a seguir fará o scrape `https://example.com` e enviará os resultados para o seu bucket TOS.

```json
{
    "source": "universal",
    "url": "https://example.com",
    "storage_type": "tos",
    "storage_url": "https://access_key:secret_key@endpoint/bucket_name/path"
}
```

### Parâmetros <a href="#docs-internal-guid-dbfc45c7-7fff-9754-b71a-bacb24e2ac54" id="docs-internal-guid-dbfc45c7-7fff-9754-b71a-bacb24e2ac54"></a>

<table><thead><tr><th width="166">Parâmetro</th><th width="165">Valores disponíveis</th><th>Descrição</th></tr></thead><tbody><tr><td><code>storage_type</code></td><td><code>tos</code></td><td>Especifica o BytePlus TOS como provedor de armazenamento.</td></tr><tr><td><code>storage_url</code></td><td>String de URL</td><td>URL autenticada para o seu bucket TOS (veja o formato abaixo).</td></tr></tbody></table>

### Formato da URL de armazenamento

O `storage_url` deve ser construído usando suas credenciais TOS e os detalhes do bucket.

```bash
https://access_key:secret_key@endpoint/bucket_name/path
```

| Componente    | Descrição                                                                        |
| ------------- | -------------------------------------------------------------------------------- |
| `access_key`  | Sua access key ID da BytePlus.                                                   |
| `secret_key`  | Sua secret access key da BytePlus.                                               |
| `endpoint`    | O endpoint específico da região (por exemplo, `tos-cn-hongkong.bytepluses.com`). |
| `bucket_name` | Nome do bucket de destino.                                                       |
| `path`        | *(Opcional)* Caminho específico da pasta do bucket.                              |

{% hint style="warning" %}
Se sua Access Key ou Secret Key contiver caracteres especiais (como `/`, `+`, ou `=`), elas **devem ser codificadas em URL** antes de construir a string.
{% endhint %}

### Nomeação do arquivo de saída

A Oxylabs gera automaticamente nomes de arquivo para os objetos enviados com base nos detalhes do job:

* **HTML/Conteúdo:** `{query_id}_{timestamp}.html`
* **Dados processados:** `{query_id}_results.json`

Os arquivos ficarão acessíveis no seu bucket em: `tos://{bucket_name}/{path}/{filename}`

## Outro armazenamento compatível com S3

Se você quiser que seus resultados sejam entregues em um local de armazenamento compatível com S3, você precisará incluir a `ACCESS_KEY:SECRET` string de autenticação na `storage_url` valor no payload:

```json
{
    "source": "universal",
    "url": "https://example.com",
    "storage_type": "s3_compatible",
    "storage_url": "https://ACCESS_KEY:SECRET@s3.oxylabs.io/my-videos"
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.oxylabs.io/products/pt-br/web-scraper-api/features/result-processing-and-storage/cloud-storage.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
