Een Cloudflare R2-bucket instellen voor Shareboxed
Shareboxed uploadt rechtstreeks naar een R2-bucket die van jou is. Bestanden houden hun eigen naam en blijven zichtbaar in je dashboard. R2 wordt per account geadresseerd in plaats van per region, dus de connectie vraagt om een account id in plaats van om een endpoint.
1. Maak de bucket
npx wrangler r2 bucket create my-uploads
Of in het dashboard: R2 → Create bucket. Laat public access uit staan (de standaard).
2. Maak een API-token
R2 → API → Manage API tokens → Create API Token, met de permission Object Read & Write, beperkt tot de bucket die je net gemaakt hebt. De Access Key ID en Secret Access Key worden één keer getoond.
Plak ze in de connectie in Shareboxed:
| Veld | Waarde |
|---|---|
| Account ID | R2 → Overview, in het paneel Account details |
| Bucket name | my-uploads |
| Credentials | de Access Key ID en Secret Access Key van het token |
| Folder | optioneel, een prefix binnen de bucket |
Het hele S3-endpoint van het token in het veld Account ID plakken werkt ook; de app haalt het account id eruit.
3. Optioneel: onvolledige uploads afbreken
Je bucket → Settings → Object lifecycle rules → Add rule, zet Abort incomplete multipart uploads aan na 1 dag.
4. Optioneel: uploads na 7 dagen verwijderen
Een tweede lifecycle rule: Delete objects na 7 dagen, beperkt tot de prefix die je Shareboxed onder Folder gegeven hebt.
Shareboxed-downloadlinks aanzetten
Standaard uit. Met de schakelaar aan (connectie-instellingen → Sharing)
kopieert een voltooide upload ook een shareboxed.app-link waar iedereen
vanaf kan downloaden. Een link leeft zeven dagen, net als elke share van
Shareboxed; de instelling uitzetten verwijdert de opgeslagen sleutel en
beëindigt in één keer elke levende link van deze connectie.
De bucket heeft twee dingen nodig om die links te laten werken.
1. Het token moet mogen teruglezen wat het geschreven heeft. Object Read & Write dekt dat. Een token dat alleen mag schrijven ondertekent uploads prima en laat elke download mislukken.
2. Geef de downloadpagina toegang tot de bytes (CORS). Je bucket → Settings → CORS policy → Edit:
[
{
"AllowedOrigins": ["https://shareboxed.app"],
"AllowedMethods": ["GET", "HEAD"],
"AllowedHeaders": ["*"],
"MaxAgeSeconds": 3600
}
]
Als iets niet werkt
Druk eerst op Test Connection. Wat het kan zeggen:
| Test Connection zegt | Oplossing |
|---|---|
| Missing credentials | De Credentials-velden zijn leeg of zijn niet opgeslagen. Vul de key en het secret opnieuw in. |
| Invalid credentials | Het secret is verkeerd, het token is verwijderd, of de Account ID is niet het account van dit token. |
| Insufficient permissions | Het token is beperkt tot een andere bucket. |
| Bucket not found | Typefout in de bucketnaam. R2-bucketnamen zijn hoofdlettergevoelig. |
| Not reachable | De Account ID klopt niet, of er antwoordde niets. Kopieer hem uit R2 → Overview. |
| Missing CORS rule | Downloadlinks staan aan, maar de bucket heeft geen CORS-regel voor https://shareboxed.app. |
| Server errored | Cloudflare zelf ging fout. Probeer het opnieuw en bekijk de statuspagina van Cloudflare. |
Nog één die pas later opduikt:
- Een ontvanger ziet "Connection refused, please ask the sender to check on the permissions": de CORS-regel ontbreekt, of het token is aangemaakt zonder leesrecht en kan niet teruglezen wat het geschreven heeft. Object Read & Write lost beide helften op.
Gebruik je S3 ook elders? De S3-handleiding behandelt AWS, Backblaze B2 en MinIO, en R2 via datzelfde S3-connectietype.