# 55. Téléverser des fichiers zip (plus de 6 Mo)

En raison d'une limitation technique du fournisseur cloud AWS, le téléversement de fichiers supérieurs à 6 Mo doit être effectué en 2 étapes :

#### **1. Demander le lien pré-signé pour un téléversement direct ultérieur.**  <a href="#step1" id="step1"></a>

En entrée :&#x20;

* `fileType` - `rendement` OU `sol` OU `appliqué` OU `adapt` OU `limite`,&#x20;
* `farmUuid` (optionnel) - uuid de la ferme dans laquelle importer le fichier.&#x20;

En sortie :

* `uuid` - l'uuid attendu après le téléversement et le traitement,
* `farmUuid` - le même que l'entrée,
* `fileType` - le même que l'entrée,
* `s3Url` - l'URL utilisée pour téléverser le fichier,
* `s3Fields` - attributs à passer dans le formulaire de téléversement du fichier.

Les détails sur la façon d'utiliser `s3Url` et `s3Fields` sont décrits dans la deuxième étape.&#x20;

Les attributs ne sont valables que 60 minutes pour téléverser le fichier.

{% code overflow="wrap" lineNumbers="true" %}

```graphql
mutation GeneratePresignedPostFileData {
  generatePresignedPostFileData(input:{
    fileType: applied
    farmUuid: "8bba5132-3a92-4ce1-8699-220e78ad68bd"
  } ) {
    uuid
    farmUuid
    fileType
    s3Url
    s3Fields
  }
}

```

{% endcode %}

#### **2. Envoyer un fichier local vers s3Url avec les attributs de formulaire prédéfinis provenant de s3Fields.**  <a href="#step2" id="step2"></a>

{% code overflow="wrap" lineNumbers="true" %}

```bash
curl --location --request POST '<s3Url>' \
--form 'key="<value_in_s3Fields>"' \
--form 'AWSAccessKeyId="<value_in_s3Fields>"' \
--form 'x-amz-security-token="<value_in_s3Fields>"' \
--form 'policy="<value_in_s3Fields>"' \
--form 'signature="<value_in_s3Fields>"' \
--form 'file=@"<local_file_path>"'
```

{% endcode %}

Les notifications concernant le traitement seront délivrées via le mécanisme d'abonnement décrit dans\
&#x20;[1. Abonnement : Obtenir les événements](/geopard-tutorials/fr/docs-api/vue-densemble-des-requetes-de-lapi-geopard/1.-abonnement-obtenir-les-evenements.md).

{% hint style="info" %}
L'en-tête de réponse inclut un `Etag` en-tête, qui apparaît par exemple comme `Etag: "6fd3e76992738357ab50039f2c60024e"`. Cette valeur est ensuite utilisée dans GraphQL [query getPlatformContext](/geopard-tutorials/fr/docs-api/vue-densemble-des-requetes-de-lapi-geopard/83.-requete-collecter-le-contexte-de-la-plateforme.md) pour suivre la progression du traitement, ainsi que l'association avec les entités « Field », « AsAppliedDataset », « YieldDataset » et « SoilDataset ».
{% endhint %}

{% hint style="info" %}
Utilisez `‘Accept-Encoding’:’gzip, deflate, br’`.
{% endhint %}


---

# Agent Instructions: 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:

```
GET https://docs.geopard.tech/geopard-tutorials/fr/docs-api/vue-densemble-des-requetes-de-lapi-geopard/55.-televerser-des-fichiers-zip-plus-de-6-mo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
