Storage task struct for file transfer operations.
Location Types
{:cloud, bucket, res_key}- Cloud storage{:remote, url}- Remote URL{:file, path}- Local file{:content, binary}- Raw content
Examples
# Upload from URL
%StorageTask{source: {:remote, url}, target: {:cloud, bucket, key}}
# Delete
%StorageTask{source: {:cloud, bucket, key}, target: nil}
# Delete after N days
%StorageTask{source: {:cloud, bucket, key}, target: nil, opts: [days: 7]}