Multipart upload: write_s3() and upload_s3() send bodies larger than multipart_threshold (64 MiB by default; s3_config(), S3PE_MULTIPART_THRESHOLD) in parts of part_size (16 MiB), one by one, aborted on any failure, with every part’s ETag and the final ETag checked.
write_s3() and upload_s3() take metadata (user metadata, returned by head_s3() in its new metadata column) and headers (any extra header: Cache-Control, Content-Disposition, x-amz-storage-class, server-side encryption, …).
presign_s3() returns a pre-signed URL (GET or PUT) valid for up to seven days.
sync_up_s3() and sync_down_s3() mirror a directory and a prefix by size and ETag, optionally deleting extras and uploading a manifest last.
Not implemented, by design: ACLs (manage access with keys and policies) and versioning (no versionId on read, head or delete).
s3pe 0.2.0
The endpoint has no default any more: set S3PE_ENDPOINT, options(s3pe.endpoint) or call use_endpoint(). A missing endpoint is an s3pe_error_config at request time, like missing credentials.
Documentation and examples are generic: the package serves any S3-compatible store.
s3pe 0.1.0
Initial release.
read_s3() and write_s3() move R objects to and from the store, with the format chosen by the key’s extension (CSV, TSV, JSON, GeoJSON, Parquet, RDS, XLSX, text, raw).
s3_config() resolves endpoint, region, credentials and bucket from arguments, options and the environment, in that order.
Requests signed with AWS Signature Version 4 (header style, payload hashed); transient failures retried with exponential backoff; ETag and content length checked after every transfer.