Cloudflare R2
S3-compatible object storage with no egress fees, strong read-after-write and encryption at rest.
- Provider
- cloudflare
- Kind
- Object store
- Category
- Data
| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| checksumOnWrite | boolean | — | no | false | inherited |
| durabilityNines | integer | — | no | — | inherited |
| encryptionAtRest | boolean | — | no | false | ▸ true |
| infrequentAccessMinimumDays | integer | — | no | 30 | inherited |
| managed | boolean | — | no | false | ▸ true |
| objectLock | boolean | — | no | false | ▸ false |
| publicAccess | boolean | — | no | false | inherited |
| replication | enum | none | primary-secondary | quorum | erasure-coded | no | none | inherited |
| s3Compatible | boolean | — | no | true | inherited |
| storageClass | enum | standard | infrequent-access | no | standard | inherited |
| strongReadAfterWrite | boolean | — | no | false | ▸ true |
| tier | enum | hot | warm | cold | no | hot | ▸ hot |
| versioning | boolean | — | no | false | ▸ false |
| zones | integer | — | no | — | inherited |
Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.
object-store-single-zone-with-durability-target
Eleven nines of durability assumes redundancy spread over at least three failure domains. An object store confined to fewer zones, or declaring none, cannot reach the target the design states.
- — all of these hold:
- — the design requirement `durability.annualNines` is a number greater than 10
- — any of these hold:
- — the node's `zones` has no value
- — the node's `zones` is a number less than 3
nodes:
- { id: "r2", component: "cloudflare-r2" }Object Storage Servicealibaba-ossAWS HealthImagingaws-healthimagingAWS HealthOmicsaws-healthomicsAmazon S3 Express One Zoneaws-s3-express-one-zoneAmazon S3 Glacieraws-s3-glacierAmazon S3 Tablesaws-s3-tablesAmazon Security Lakeaws-security-lakeAmazon S3s3Azure Blob Storageazure-blob-storageAzure Data Lake Storageazure-data-lake-storageMicrosoft Planetary Computer Proazure-planetary-computerCache Reservecloudflare-cache-reserveCloudflare Imagescloudflare-imagesBackblaze B2 Cloud Storagebackblaze-b2Blob storeblob-storeCeph RADOS Gatewayceph-rgwCloudinarycloudinaryGaragegaragelakeFSlakefsMinIOminioGeneric object storeobject-storeApache OzoneozoneSeaweedFSseaweedfsStorjstorjOpenStack SwiftswiftWasabi Hot Cloud StoragewasabiSpaces Object Storagedigitalocean-spacesGoogle Cloud StoragegcsIBM Cloud Object Storageibm-cloud-object-storageOCI Archive Storageoci-archive-storageOCI Object Storageoci-object-storageOUTSCALE Object Storage (OOS)outscale-oos
# yaml-language-server: $schema=../../schema/component.schema.json # R2 bucket: S3-compatible object storage with no egress fees. "R2 - Consistency" states the effect # of an operation is observed globally and immediately, so reads are strongly read-after-write; # "R2 - Data security" states every object and its metadata is encrypted at rest with AES-256-GCM. schemaVersion: "1" type: "component" id: "cloudflare-r2" kind: "object-store" provider: "cloudflare" docs: "https://developers.cloudflare.com/r2/reference/data-security/" defaults: managed: true tier: "hot" strongReadAfterWrite: true encryptionAtRest: true versioning: false objectLock: false properties: storageClass: type: "enum" values: ["standard", "infrequent-access"] default: "standard" s3Compatible: type: "boolean" default: true publicAccess: type: "boolean" default: false infrequentAccessMinimumDays: type: "integer" default: 30