5

いくつかの perforce 操作を実行する Perl アプリがあります。最終的に、結果を SharePoint Web サイトにアップロードしたいと考えています。

  • ドキュメントを SharePoint に追加するタスクを実行できる最も単純な Perl スクリプトはどれですか?

スクリプトは Solaris で実行する必要があり、外部ライブラリ (間違いなく純粋なクラシック Perl) をできるだけ少なく使用する必要があり、これらの UNIX ボックスに追加で何かをインストールするのは面倒であり、リモート チームが行う必要があります。

ドキュメントのアップロードが wget で簡単にできるなら、それも興味深いでしょう。とにかく分かりやすいライナーを1つか2つ探しています。

コメントに基づく更新:

  • Perl Mechanize は良いアイデアのように聞こえましたが、何らかの理由で認証できません。Error GETinghttp://sharepoint Unauthorized ....

私はこれを持っていました:

my $m = WWW::Mechanize->new(); 
$m->credentials($user => $pass); 
$m->get($url);

しかし、mechanize は何らかの理由で sharepoint に対して認証を行いません。

  • UNIX から perl 経由で sharepoint webdav を使用する方法に関するリンクまたはサンプルはありますか?

「dave」webdav ブラウザーを使用して通常の共有ポイント サイトをインストールして開こうとしましたが、** Unauthorized. **エラーが発生します。

  • UNIX上のperlを使用したwebdavアプローチで解決するにはどうすればよいですか?
4

5 に答える 5

6

これはWWW::Mechanizeの仕事のように思えます。フォームを処理するための優れたサポートがあります。

于 2009-01-30T01:17:17.227 に答える
2

perlmonksフォーラムからWindowsで簡単な方法を見つけました:

http://www.perlmonks.org/?node_id=527182
under Windows, you can access a sharepoint site via a UNC name. The URL:
sharepoint.domain.dom/sites/Roboticus/Test
is accessible via:
\\sharepoint.domain.com\sites\Roboticus\Test

自分自身への答えとして追加するだけで、Perlからこれをスクリプト化する方法と、UNIXで実行されているスクリプトから同じことを実行する方法があるかどうかを理解する必要があります。

于 2009-02-02T22:57:36.947 に答える
1

WWW::Mechanize で NTLM 認証を機能させるには、この形式を使用する必要があります。

use URI;
my $u    = URI->new($url);
my $host = $u->host;
my $port = $u->port;
my $hostport = "$host:$port";

$agent->$self->credentials($hostport, $realm, $user, $password);
于 2009-12-20T14:47:50.593 に答える
1

Webdavインターフェイスを使用できますか? 各 SharePoint リストには、関連付けられた webdav フォルダーがあります。

于 2009-01-30T01:16:24.390 に答える
1

Kerberos/NTLM で認証およびネゴシエーションを実行できるcurlを使用して、SharePoint (または任意の Web サイト) に接続できます。

curl --ntlm -u domain/userid:passwd -T <file> "http://sharepoint URL" 
  • --ntlm
    (HTTP) NTLM 認証を有効にします。NTLM 認証方式は Microsoft によって設計され、IIS Web サーバーで使用されます。これは、賢い人々によってリバース エンジニアリングされ、彼らの努力に基づいて curl に実装された独自のプロトコルです。この種の動作は承認されるべきではありません。NTLM を使用するすべての人に、Digest などのパブリックで文書化された認証方法に切り替えることを推奨する必要があります。

    プロキシ認証で NTLM を有効にする場合は、--proxy-ntlm を使用します。

    このオプションには、SSL サポートで構築されたライブラリが必要です。-V, --version を使用して、curl が NTLM をサポートしているかどうかを確認します。

    このオプションが複数回使用された場合、最初のオプションのみが使用されます。

  • -u, --user

    サーバー認証に使用するユーザー名とパスワードを指定します。-n、--netrc、および --netrc-optional をオーバーライドします。

    ユーザー名のみを指定すると、curl はパスワードの入力を求めます。

    ユーザー名とパスワードは最初のコロンで分割されるため、このオプションではユーザー名にコロンを使用できません。パスワードはできます。

    Windows ベースのサーバーで Kerberos V5 を使用する場合、サーバーが Kerberos チケットを正常に取得できるように、ユーザー名に Windows ドメイン名を含める必要があります。そうしないと、最初の認証ハンドシェイクが失敗する可能性があります。

    NTLM を使用する場合、たとえばセットアップに単一のドメインとフォレストがある場合、ユーザー名はドメインなしでユーザー名として単純に指定できます。

    ドメイン名を指定するには、ダウンレベル ログオン名または UPN (ユーザー プリンシパル名) 形式を使用します。たとえば、それぞれ EXAMPLE\user と user@example.com です。

    Windows SSPI 対応の curl バイナリを使用し、Kerberos V5、Negotiate、NTLM、または Digest 認証を実行する場合、「-u :」オプションでコロンを 1 つ指定することにより、環境からユーザー名とパスワードを選択するように curl に指示できます。 .

    このオプションを複数回使用すると、最後のオプションが使用されます。

  • -T, --アップロードファイル

    これにより、指定されたローカル ファイルがリモート URL に転送されます。指定された URL にファイル部分がない場合、Curl はローカル ファイル名を追加します。ファイル名がないことを Curl に実際に証明するには、最後のディレクトリの末尾に / を使用する必要があることに注意してください。そうしないと、curl は最後のディレクトリ名が使用するリモート ファイル名であると認識します。これにより、アップロード操作が失敗する可能性が高くなります。これが HTTP(S) サーバーで使用される場合、PUT コマンドが使用されます。

    特定のファイルの代わりに stdin を使用するには、ファイル名 "-" (ダッシュ 1 つ) を使用します。または、ファイル名「.」"-" の代わりに (単一のピリオド) を指定すると、非ブロッキング モードで stdin を使用して、stdin のアップロード中にサーバー出力を読み取ることができます。

    コマンド ラインでは、URL ごとに 1 つの -T を指定できます。-T + URL の各ペアは、何をどこにアップロードするかを指定します。curl は -T 引数の「グロビング」もサポートしています。つまり、次のように、URL でサポートされているのと同じ URL グロビング スタイルを使用して、1 つの URL に複数のファイルをアップロードできます。

    curl -T "{file1,file2}" http://www.uploadtothissite.com

    あるいは

    curl -T "img[1-1000].png" ftp://ftp.picturemania.com/upload/

于 2016-02-22T19:43:40.377 に答える