Publish / objectstore · All operations
Upload to cloud storage
Put to S3, GCS, Azure Blob, HDFS, FTP, SFTP.
Status
- In arcform
Not built yet
arcform does not do this yet. Its place on the roadmap
- Shape of the result
- the table sent out, with nothing new to look at
- Level
- needs a DuckDB extension
Variants
- Upload files to a remote store
Copy files that already exist on disk, or earlier artifacts, to an object store, file server or drive.
Write metadata to stored objects
Set custom metadata on objects in a store or catalogue, leaving their contents alone.
Write the result to cloud storage
Write the pipeline's rows as a file in an object store or on a remote file server, in a chosen format.
What other tools call it
Meridian's classification; an independent blind rating agreed on 86.2% of 312 rows (exact class, version 2).
Alteryx Designer (1)
Cloud file storage output connectors (family)read 2026-09-277 tools, one per store: Amazon S3 Upload, Azure Data Lake File Output, Box, Dropbox, Google Drive, ...
Apache Hop (3)
Put a file with FTPread 2026-09-27Upload files to an FTP server
Put a file with SFTPread 2026-09-27Upload files to an SFTP server
SFTP Putread 2026-09-27Upload a file or field content to an SFTP server per row
Apache NiFi (1)
Object and file store put processors (family)read 2026-09-2711 processors, one per store: PutS3Object, PutGCSObject, PutAzureBlobStorage_v12, PutFTP, PutSFTP, …
AWS Glue (1)
s3 connection type (sink)read 2026-09-27Write to Amazon S3, in any of the writable data formats
Azure Data Factory (1)
Copy activity sink data stores: File (family)read 2026-09-272 data stores usable as copy sink: File System, SFTP
Duckle (5)
Azure Blob Storageread 2026-09-25write to Azure Blob Storage through DuckDB azure extension
Copy Artifactread 2026-09-25copy the bytes of upstream-named artifacts to durable storage, one row per copy
File Transferread 2026-09-25upload pipeline output over FTP, FTPS or SFTP
Hugging Face datasetread 2026-09-25push output as Parquet to a Hugging Face Hub dataset repo
Object Storage sinks via the httpfs extension (family)read 2026-09-255 components, one per system, run by DuckDB httpfs extension: s3, gcs, minio, r2, b2
OpenRefine (1)
OpenRefine project archive to Google Drive...read 2026-09-27Upload the whole project archive, history included, to Google Drive
Pentaho Data Integration (3)
Catalog Outputread 2026-09-27Create or update a Pentaho Data Catalog resource and save its metadata
SFTP Putread 2026-09-27Upload a file or stream to a remote host over SFTP
Write metadata to HCP objectsread 2026-09-27Write custom metadata fields to a Hitachi Content Platform object
RapidMiner Studio (2)
Cloud storage Write operators (family)read 2026-09-276 operators, one per store, each uploading a file: Amazon S3, Azure Blob, ADLS Gen2, Dropbox, Google Storage, Google Drive
Write SFTPread 2026-09-27Upload a file to an SFTP server
Tableau Prep (1)
Amazon S3read 2026-09-27Save the result as a .parquet or .csv object in Amazon S3
Talend (3)
File store output components (family)read 2026-09-275 components writing rows to files in a remote store: tHDFSOutput, tAzureAdlsGen2Output, tBoxv2Output, tSambaOutput
File store put components (family)read 2026-09-2713 components uploading files to a remote store: tS3Put, tFTPPut, tHDFSPut, tGSPut
tMongoDBGridFSPutread 2026-09-27Copy files from a local directory into MongoDB GridFS
Background
In Amazon Simple Storage Service (Amazon S3), uploading a file stores it as an object made of the file data and metadata that describes it.[1] The vast majority of cloud storage on the market uses an object storage architecture, which manages data as objects.[2] Object storage systems allow retention of massive amounts of unstructured data that is written once and read once or many times.[2]
When to use it
In Amazon S3, a bucket is a container for objects, and each object has a key that identifies it uniquely within its bucket.[3] In Amazon S3, uploading an object with a key name that already exists in a versioning-enabled bucket creates another version instead of replacing the existing object.[1] Amazon S3 provides strong read-after-write consistency both for writes of new objects and for requests that overwrite existing objects.[3] Where earlier outputs must survive, put a date or a run identifier in the key, or turn on versioning, rather than writing every run to the same key. (Meridian's view)
In Amazon S3, buckets and the objects in them are private and can be accessed only if access permissions are explicitly granted.[3] Before files can be uploaded to an Amazon S3 bucket, the uploader needs write permissions for the bucket.[1] Grant a pipeline's credentials write access to the one bucket it publishes to, and nothing wider. (Meridian's view)
Object storage is not intended for transactional data, as it does not support the locking and sharing mechanisms needed to keep a single, accurately updated version of a file.[2] Reach for an object store to publish finished outputs that other people and tools read, not as a working file that several processes edit at once. (Meridian's view)
The method
Object storage was proposed at Garth Gibson's Carnegie Mellon University lab as a research project in 1996.[2] Amazon S3 debuted in March 2006.[2] Amazon S3 general purpose buckets have a flat structure instead of a file system's hierarchy, and the Amazon S3 console shows folders by grouping objects whose names share a prefix.[4] Most object storage application programming interfaces (APIs) are based on representational state transfer (REST), so they can use many standard Hypertext Transfer Protocol (HTTP) calls.[2]
DuckDB's httpfs extension reads and writes files on object storage servers through the S3 API, which offers a standard way to write to remote files that regular HTTP servers do not.[5] Services other than Amazon S3 that implement the S3 API, such as Cloudflare R2, should also work with DuckDB's httpfs extension, though not all features may be supported.[5] In DuckDB, writing to S3 works for both comma-separated values (CSV) and Parquet, and uses the multipart upload API.[5]
Amazon S3's multipart upload sends a single object as a set of parts that can be uploaded independently and in any order, and Amazon S3 then assembles the parts into the object.[6] In an Amazon S3 multipart upload, a part whose transmission fails can be retransmitted without affecting the other parts.[6] In Amazon S3, using multipart upload for objects of 100 MB or larger, instead of uploading them in a single operation, is a best practice.[6] Amazon S3 bills for the storage of a multipart upload's parts until the upload is completed or stopped.[6] A pipeline whose uploads can fail midway should stop or clean up its unfinished multipart uploads. (Meridian's view)
Compared with the alternatives
Object storage manages data as objects, whereas file systems manage data as a file hierarchy and block storage manages it as blocks within sectors and tracks.[2] Writing to a local disk is simpler while one machine reads the result; an object store earns its place once the output must be read from elsewhere. (Meridian's view)
Sources
- [1]Uploading objects - Amazon Simple Storage Servicedocumentation
- [2]Object storage - Wikipediasecondary source
- [3]What is Amazon S3? - Amazon Simple Storage Servicedocumentation
- [4]Organizing objects in the Amazon S3 console by using folders - Amazon Simple Storage Servicedocumentation
- [5]S3 API Support – DuckDBdocumentation
- [6]Uploading and copying objects using multipart upload in Amazon S3 - Amazon Simple Storage Servicedocumentation