package blob import ( "context" "io" "mime/multipart" "forge.cadoles.com/arcad/edge/pkg/bus" "forge.cadoles.com/arcad/edge/pkg/storage" ) const ( AddressUpload bus.Address = "module/blob/upload" AddressDownload bus.Address = "module/blob/download" ) type UploadRequest struct { Context context.Context FileHeader *multipart.FileHeader Metadata map[string]interface{} } func NewUploadRequestEnvelope(ctx context.Context, fileHeader *multipart.FileHeader, metadata map[string]interface{}) bus.Envelope { return bus.NewEnvelope(AddressUpload, &UploadRequest{ Context: ctx, FileHeader: fileHeader, Metadata: metadata, }) } type UploadResponse struct { Allow bool Bucket string BlobID storage.BlobID } type DownloadRequest struct { Context context.Context Bucket string BlobID storage.BlobID } func NewDownloadRequestEnvelope(ctx context.Context, bucket string, blobID storage.BlobID) bus.Envelope { return bus.NewEnvelope(AddressDownload, &DownloadRequest{ Context: ctx, Bucket: bucket, BlobID: blobID, }) } type DownloadResponse struct { Allow bool Blob io.ReadSeekCloser BlobInfo storage.BlobInfo }