GeoPard Tutorials
Ask or search…
K

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.
1
mutation GeneratePresignedPostFileData {
2
generatePresignedPostFileData(input:{
3
fileType: applied
4
farmUuid: "8bba5132-3a92-4ce1-8699-220e78ad68bd"
5
} ) {
6
uuid
7
farmUuid
8
fileType
9
s3Url
10
s3Fields
11
}
12
}
13

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

1
curl --location --request POST '<s3Url>' \
2
--form 'key="<value_in_s3Fields>"' \
3
--form 'AWSAccessKeyId="<value_in_s3Fields>"' \
4
--form 'x-amz-security-token="<value_in_s3Fields>"' \
5
--form 'policy="<value_in_s3Fields>"' \
6
--form 'signature="<value_in_s3Fields>"' \
7
--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’.