Ich versuche, eine Datei von Linux zu Sharepoint mit meinen Sharepoint-Anmeldedaten hochzuladen. Ich benutze das Dienstprogramm cURL, um dies zu erreichen. Der Upload ist erfolgreich.
Der verwendete Befehl lautet: curl --ntlm --user username:password --upload-file myfile.txt -k https://sharepointserver.com/sites/mysite/myfile.txt
Die Option -k wird verwendet, um die Zertifikatfehler für die nicht sichere Sharepoint-Site zu umgehen.
Diese hochgeladene Datei wird jedoch in der "ausgecheckten" Ansicht (grüner Pfeil) im Sharepoint von meinem Login angezeigt. Daher ist diese Datei für Benutzer aus anderen Logins nicht vorhanden.
Mein Login hat den Schreibzugriff auf Sharepoint.
Irgendwelche Ideen, wie Sie diese Datei mit cURL "sharen" können, damit die Datei von jedem Benutzer aus gesehen werden kann?
Ich habe momentan keine Curl zur Verfügung, um sie zu testen, aber Sie könnten vielleicht etwas aus den folgenden Informationen machen.
Das Ein- und Auschecken wird von /_layouts/CheckIn.aspx
übernommenDie Seite enthält die folgenden Querystring-Variablen:
Liste - Eine GUID, die die aktuelle Liste identifiziert.
Dateiname - Der Name der Datei mit der Erweiterung.
Quelle - Die vollständige URL der Seite allitems.aspx in der Bibliothek.
Ich konnte die CheckIn.aspx-Seite korrekt laden, indem ich nur die Parameter Dateiname und Quelle verwendete und den Parameter Liste ausließ. Das ist gut, weil Sie keine Möglichkeit finden müssen, die GUID der Liste nachzuschlagen.
Die CheckIn.aspx-Seite gibt sich mit den folgenden Formularparametern, die das Einchecken steuern, an sich selbst zurück:
PostBack - boolean wird auf "true" gesetzt.
CheckInAction - Zeichenfolge, die auf ActionCheckin
festgelegt istKeepCheckout - wird auf 1 gesetzt, um das Auschecken zu ermöglichen, und auf 0, um eingecheckt zu bleiben
CheckinDescription - Textzeichenfolge
Rufen Sie dies in locken wie so
curl --data "PostBack = true & amp; CheckinAction = AktionCheckin & amp; KeepCheckout = 0 & amp; CheckinDescription = SomeTextForCheckIn" http: // {Ihr Server und Site} / _ layouts / checkin.aspx? Quelle = {Vollständige URL zur Bibliothek} /Forms/AllItems.aspx&FileName= {Doc und Ext}
Wie gesagt, ich habe keine Curl zum Testen, aber ich habe es über den Composer-Tab in Fiddler 2 zum Laufen gebracht.
Ich probiere das jetzt mit curl aus und es gibt ein Problem, es zum Laufen zu bringen. Fiddler führte die Anfrage als POST aus. Wenn Sie versuchen, dies als GET-Anforderung auszuführen, erhalten Sie einen 500-Fehler, der besagt, dass die AllowUnsafeUpdates-Eigenschaft von SPWeb diese Anforderung nicht über GET zulässt. Senden der Anfrage als POST sollte dies korrigieren.
Bearbeiten Ich gehe derzeit die checkin.aspx-Quelle im DotPeek-Decompiler durch und sehe einige zusätzliche Optionen für den ActionCheckin-Parameter, die relevant sein könnten, wie ActionCheckinPublish und ActionCheckinFromClientPublish. Ich werde dies mit zusätzlichen Ergebnissen aktualisieren. Die Seite befindet sich unter Microsoft.SharePoint.ApplicationPages.Checkin für alle anderen Interessierten.
Die obige Antwort von Junx ist korrekt. Die Dateinamensvariable ist jedoch nicht nur der Dokumentdateiname und die Erweiterung, sondern sollte auch den Bibliotheksnamen enthalten. Ich konnte das mit der folgenden Arbeit zum Laufen bringen.
Beispiel: http://domain/_layouts/Checkin.aspx?Filename=Shared Documents/filename.txt
Meine Frage zu Ausführen mehrerer Anfragen mit cURL hat ein ziemlich umfassendes Beispiel mit bash und cURL, obwohl es darunter leidet, das Passwort für jede Anfrage erneut eingeben zu müssen.
Tags und Links curl sharepoint