ProselfへのファイルアップロードをPowerShellで自動化する

Proselfとは

Proselfとは、企業や大学でよく採用されている国産オンラインストレージサービスです。

パッケージ購入で自社・自組織内にストレージサービスを構築できることを特徴としており、自社・自組織内だからこその柔軟さが支持されています。

Proselfの操作をPowerShellから自動化する

Proselfをコマンドラインから扱う方法は、公式FAQのここで解説されています。

ただし公式FAQはPowerShellでのやり方が解説されていません。UNIX系のコマンドラインやWindows10のコマンドプロンプトで使える【curlコマンド】でのやり方は書いていますが、PowerShellのHTTP通信系コマンドレット【Invoke-WebRequest】はオプションまわりがcurlとは少し違うのです。

というわけで、今回はPowerShellからProselfへのファイルアップロード自動化を解説していきます。

現在のディレクトリにあるファイルをすべてProselfにアップロードする自作関数(PowerShell)

ざっくりこんな感じです。

function Upload-Proself($username, $password, $proself_server_url) {
  $securepass = ConvertTo-SecureString $password -AsPlainText -Force
  $credential = New-Object -TypeName System.Management.Automation.PSCredentialTypes -ArgumentList $username, $securepass
  Get-ChildItem -File | % {
    Invoke-WebRequest -Method 'PUT' -Credential $credential -Uri "$proself_server_url/$username/$($_.Name)" -InFile $_.FullName
  }
}

(そのうち解説継ぎ足します)