Ich möchte eine Datei auf meinem Desktop namens „hello.txt“ in mein Git-Repository hochladen, das eine Version hat. Wie mache ich das? Ich habe die Git-Dokumentation gelesen, aber sie sagt so etwas wie:
POST https://<upload_url>/repos/:owner/:repo/releases/:id/assets?name
. Wie man das in CURL macht. Ich verstehe das nicht.
Wie poste ich diese Datei als Release-Asset in meiner Github-Version? Vielen Dank
curl \
-H "Authorization: token $GITHUB_TOKEN" \
-H "Content-Type: $(file -b --mime-type $FILE)" \
--data-binary @$FILE \
"https://uploads.github.com/repos/hubot/singularity/releases/123/assets?name=$(basename $FILE)"
In Anlehnung an die Antwort von @galeksandrp sind hier einige Probleme, auf die ich gestoßen bin
Notiere dass der --data-binary
Die Option kopiert den Dateiinhalt zuerst in den Arbeitsspeicher. Wenn Sie also große Dateien haben, sagen wir, dass sie nahe an 2048 MB liegen, dh die absolute Grenze für Github-Veröffentlichungen, und wenn der Arbeitsspeicher nicht ausreicht, schlägt sie fehl curl: option -d: out of memory
.
Die Lösung dafür ist die Verwendung -T file path
(ohne das @).
Und nebenbei bemerkt, wenn Sie den Upload-Fortschritt sehen möchten, müssen Sie die Ausgabe weiterleiten cat
wie zum Beispiel curl <...the whole command> | cat
Der komplette Befehl würde also so aussehen
curl -X POST \
-H "Content-Length: <file size in bytes>" \
-H "Content-Type: $(file -b --mime-type $FILE)" \ #from @galeksandrp's answer
-T "path/to/large/file.ext" \
-H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
https://uploads.github.com/repos/<username>/<repo>/releases/<id>/assets?name=<name> | cat
superuser.com/q/149329/219423 Suchst du danach?
– 1615903
13. Juni 2016 um 9:51 Uhr
Ich bin mir nicht sicher, ob es das akzeptiert. Habe nach dem kompletten Git-Befehl gesucht, damit ich ihn nach meinen Bedürfnissen modifizieren und auch verstehen kann
– tsaebeht
13. Juni 2016 um 10:03 Uhr
In der Frage haben Sie ausdrücklich gesagt, dass Sie dies mit cURL tun möchten. Ist das nicht der Fall?
– 1615903
13. Juni 2016 um 10:05 Uhr
Ja, aber was ist diese? Wie lade ich eine Datei auf meinen Desktop hoch? Wenn Sie wissen, wie Sie eine von mir gewünschte Anfrage erstellen, können Sie eine Antwort schreiben?
– tsaebeht
13. Juni 2016 um 10:06 Uhr