GeoPard Tutorials
Ask or search…
⌃K

56. Upload photos

Uploading a photo via S3 contains 2 steps:
  1. 1.
    Request the pre-signed link for further direct upload.
As input:
  • fileExtention - jpeg OR jpg OR png,
  • farmUuid - uuid of the farm,
  • fieldUuid - uuid of the field,
  • noteUuid - uuid of the note for the direct link of the uploaded photo,
  • commentUuid - uuid of the comment for the direct link of the uploaded photo (optional).
As output:
  • uuid - the expected uuid after the upload and processing,
  • farmUuid - the same as input,
  • fieldUuid - the same as input,
  • noteUuid - the same as input,
  • commentUuid - the same as input (if existed),
  • s3Url - the URL used to upload the photo,
  • s3Fields - attributes to pass in the upload photo 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 photo.
1
mutation generatePresignedPostPhotoData {
2
generatePresignedPostPhotoData(input:{
3
farmUuid: "89196056-61e5-4bce-b676-d488d611a829"
4
fieldUuid: "586a2ef2-03e4-4715-846c-07a2f0cb3016"
5
noteUuid: "4a94da1c-f655-4f17-961a-4b0323e5129c"
6
fileExtention: jpeg
7
8
} ) {
9
uuid
10
noteUuid
11
fieldUuid
12
farmUuid
13
s3Url
14
s3Fields
15
}
16
}
  1. 2.
    Send a local photo 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 GraphQL -> Samples -> 1. Subscription: Get events.
Use ‘Accept-Encoding’:’gzip, deflate, br’.