Naar de inhoud
Shareboxed

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.