55. Upload zip files (over 6 MB)

As a technical limitation of the AWS cloud provider, uploading files larger than 6 MB has to be done in 2 steps:

1. Request the pre-signed link for further direct upload.

As input:

  • fileType - yield OR soil OR applied OR adapt OR boundary,

  • farmUuid (optional) - uuid of the farm to import the file.

As output:

  • uuid - the expected uuid after the upload and processing,

  • farmUuid - the same as input,

  • fileType - the same as input,

  • s3Url - the URL used to upload the file,

  • s3Fields - attributes to pass in the upload file form.

The details of how to use s3Url and s3Fields are described in the second step.

The attributes are valid for only 60 mins to upload the file.

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

2. Send a local file to s3Url with predefined form attributes from s3Fields.

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>"'

Notifications about the processing will be delivered via the subscription mechanism described in 1. Subscription: Get events.

The response header includes a Etag header, which appears as for example Etag: "6fd3e76992738357ab50039f2c60024e". This value is subsequently used in GraphQL query getPlatformContext to monitor the processing progress, as well as the association with "Field", "AsAppliedDataset", "YieldDataset", and "SoilDataset" entities.

Use โ€˜Accept-Encodingโ€™:โ€™gzip, deflate, brโ€™.

Last updated

Powered by GeoPard Agriculture - Automated precisionAg platform