The Appirator core module contains a resource class called Artifact, which contains
the logic needed for uploading files and binary artifacts into the cloud storage
that Appirator uses to store such artifacts. This storage might be AWS S3 or
the storage from another cloud provider depending on which provider the platform
is running on.
The Artifact class can be used or extended to provide customised handling of
file uploads and to link these uploaded objects into Appirator resource objects.
The Artifact instances consequently act as representative of the real object
within application data.
The diagram below shows how this linkage is maintained.

The resource object stored in Appirator’s store maintains a link to the object that has been uploaded to storage so that if the object is removed on either side resources are properly cleaned up.
The process for uploading an object is shown below.

These steps are:
Artifact is placed into a PENDING state (i.e. pending upload).Artifact object in the application.Artifact object
to COMPLETE.Artifact object,
the object then makes a request to the cloud storage platform to retrieve
the object’s remaining metadata, e.g. MD5 and byte size.Artifact object
updated.On subsequent requests of the Artifact object, the requestor will receive
all the artifact metadata as well as the final public URL of the object.