Zum Inhalt
Shareboxed

Einen Cloudflare-R2-Bucket für Shareboxed einrichten

Shareboxed lädt direkt in einen R2-Bucket hoch, der dir gehört. Dateien behalten ihre eigenen Namen und bleiben in deinem Dashboard sichtbar. R2 wird pro Account adressiert statt pro Region, deshalb fragt die Verbindung nach einer Account-ID statt nach einem Endpoint.

1. Den Bucket anlegen

npx wrangler r2 bucket create my-uploads

Oder im Dashboard: R2 → Create bucket. Lass den öffentlichen Zugriff aus (der Standard).

2. Ein API-Token erstellen

R2 → API → Manage API tokens → Create API Token, Berechtigung Object Read & Write, begrenzt auf den eben angelegten Bucket. Access Key ID und Secret Access Key werden ein einziges Mal angezeigt.

Füge sie in die Verbindung in Shareboxed ein:

Feld Wert
Account ID R2 → Overview, im Panel Account details
Bucket name my-uploads
Credentials Access Key ID und Secret Access Key des Tokens
Folder optional, ein Prefix innerhalb des Buckets

Du kannst auch den kompletten S3-Endpoint des Tokens in das Feld Account ID einfügen, die App holt sich die Account-ID daraus.

3. Optional: unvollständige Uploads abbrechen

Dein Bucket → Settings → Object lifecycle rules → Add rule, aktiviere Abort incomplete multipart uploads nach 1 Tag.

4. Optional: Uploads nach 7 Tagen löschen

Eine zweite Lifecycle-Regel: Delete objects nach 7 Tagen, begrenzt auf das Prefix, das du Shareboxed unter Folder gegeben hast.

Shareboxed-Download-Links einschalten

Standardmäßig aus. Ist der Schalter an (Verbindungseinstellungen → Sharing), kopiert ein fertiger Upload zusätzlich einen shareboxed.app-Link, von dem jeder herunterladen kann. Ein Link lebt sieben Tage, wie jeder Shareboxed-Share. Schaltest du die Einstellung aus, wird der gespeicherte Key gelöscht und jeder aktive Link dieser Verbindung endet auf einen Schlag.

Damit diese Links funktionieren, braucht der Bucket zwei Dinge.

1. Das Token muss zurücklesen dürfen, was es geschrieben hat. Object Read & Write deckt das ab. Ein Token, das nur schreiben darf, signiert Uploads einwandfrei und scheitert an jedem Download.

2. Erlaube der Download-Seite, die Bytes zu lesen (CORS). Dein Bucket → Settings → CORS policy → Edit:

[
    {
        "AllowedOrigins": ["https://shareboxed.app"],
        "AllowedMethods": ["GET", "HEAD"],
        "AllowedHeaders": ["*"],
        "MaxAgeSeconds": 3600
    }
]

Wenn etwas nicht funktioniert

Drücke zuerst Test Connection. Was dort stehen kann:

Test Connection meldet Lösung
Missing credentials Die Credentials-Felder sind leer oder wurden nicht gespeichert. Gib Key und Secret erneut ein.
Invalid credentials Das Secret ist falsch, das Token wurde gelöscht, oder die Account ID gehört nicht zu diesem Token.
Insufficient permissions Das Token ist auf einen anderen Bucket begrenzt.
Bucket not found Tippfehler im Bucket-Namen. Bei R2 wird zwischen Groß- und Kleinschreibung unterschieden.
Not reachable Die Account ID ist fehlerhaft, oder es hat nichts geantwortet. Kopiere sie aus R2 → Overview.
Missing CORS rule Download-Links sind an, aber der Bucket hat keine CORS-Regel für https://shareboxed.app.
Server errored Cloudflare selbst hat versagt. Versuch es noch einmal und sieh auf der Statusseite von Cloudflare nach.

Eine weitere, die erst später auftaucht:

  • Ein Empfänger sieht "Connection refused, please ask the sender to check on the permissions": Die CORS-Regel fehlt, oder das Token wurde nur zum Schreiben erstellt und kann nicht zurücklesen, was es geschrieben hat. Object Read & Write behebt beide Hälften.

Nutzt du auch anderswo S3? Die S3-Anleitung behandelt AWS, Backblaze B2 und MinIO, und R2 über denselben S3-Verbindungstyp.