OneDriveファイルアップロード方法アレコレ

オフィスワーク モダナイズ への道

 クラウドストレージとしてとても便利なOneDriveは、オフィスワークには欠かせません。場所を選ばないクラウドサービスならではの使いやすさと、専門知識は不要で十分なセキュリティーを担保してくれますのでテレワークにも最適です。今回は様々なOneDriveへのファイルのアップロード方法を紹介します。

デスクトップアプリケーションから

 Windows10にはOneDriveアプリケーションが最初からインストールされていますので、サインインするだけですぐに利用可能です。個人利用のOneDrive、Microsoft365のOneDrive Business、SharePointのドキュメントファイルにアクセス可能です。

サインイン後、ファイルエクスプローラーから直接参照可能となります。設定メニューからアカウントを追加すると個人アカウントの OneDriveも同時に表示することができます。タスクバー右隅には、Microsoft365のOne Drive for Businessは青い雲のアイコン、個人アカウントは白い雲のアイコンが表示されます。

さらにSharePointサイトのドキュメントから「同期」を選択すると、ファイルエクスプローラーからOneDriveの操作が可能となります。

SharePointのドキュメントもファイルエクスプローラーから操作可能に。
ファイルエクスプローラーに表示されていれば、デスクトップのファイルと何ら変わらずファイルのアップロードが簡単にできます。

ブラウザから

 もちろんブラウザからもアクセスができます。デスクトップから直接ドラッグ&ドロップでファイルアップロードが可能です。

Teamsから

 Teamsアプリケーションからもアクセス可能です。
TeamsのチームからはSharePointのドキュメントを参照することになります。

左メニューのファイルからは個人のOneDrive for Businessを参照可能です。

スマートフォンアプリから

 Android、iPhoneどちらのスマートフォンアプリからも利用できます。移動中にファイルのチェックや、撮影した写真をすぐにOneDriveにアップロードして、仲間と情報交換といったモバイルならではの使い方ができます。

Power Automateから

 Power Automateからはもちろん、OneDriveのコネクタが利用できますので、簡単にファイルアップロードのフローが作成できます。

Power Appsから

 以前利用した、Power AutomateとPower Appsの連携でファイルをアップロードしてみましょう。
Power Automate側はこのようになります。OneDriveのアクションで指定する「ファイル名」には

triggerBody()?['file']?['Name']

こちらの式を設定します。

Power Apps側は前回も利用した「添付ファイルコントロール」を配置して、アップロードボタンには

ForAll(
DataCardValue3.Attachments,'OneDrive-ファイルアップロード02'.Run(
{file:{
contentBytes:Value, name:Name
}
}
)
)

こちらの式を設定します。
For~Allを利用して複数のファイルのアップロードに対応しています。

添付したファイルの内容を表示するために、「挿入」メニューから「ギャラリー」の縦型を選択します。
Itemsに

DataCardValue3.Attachments.Value

を設定します。

ギャラリーに表示するのは、「添付ファイルコントロール」でアップされたファイルになります。
Imageには

ThisItem.Value

を設定して、Image以外は全て非表示にしておきます。

ここまで出来たら実行してみましょう。
添付したファイルが画像の場合はサムネイルが表示されます。

アップロードボタンを選択すると画像もテキストファイルもアップロードされました。

HTTPリクエストから

 Power AutomateにはAPIとしてHTTPリクエストを受け付けることができるトリガーとして「HTTP 要求の受信時」が用意されています。こちらを利用すると、外部からのHTTPリクエストでOneDriveにファイルをアップロードすることができます。
フロー全体はこのようになります。

「要求本文の JSON スキーマ」には

{
"type": "object",
"properties": {
"fileName": {
"type": "string"
},
"contents": {
"type": "string"
}
}
}

こちらを設定します。
リクエストで受け取るのは、ファイル名とBase64にエンコードされたファイルのデータとなります。

「ファイルコンテンツ」には

base64ToBinary(triggerBody()?['contents'])

を設定します。

Base64の文字列で受け取ったファイルデータをバイナリデータに変換して、アップロードするファイルの仕様に適合させています。
最後に、一番上の「HTTP POST の URL」をコピーしておきます。このURLがAPIの窓口となります。
ここまで出来たら保存しておきましょう。

では実際にこのAPIを呼び出すコードを作成します。HTTPリクエストを実行出来れば言語は問いません。今回はPowerShellです。
変数 $Url には先ほどコピーした「HTTP POST の URL」を設定します。
コードの内では、APIの仕様に合わせてアップロードするファイルをいったんBase64のテキスト形式に変換してPOSTしています。

$FilePath = "C:\Users\Administrator\Documents\test.txt"
$FileName = Split-Path $FilePath -Leaf
$Url = "取得したHTTP POST の URL"
$FileToBase64 = [Convert]::ToBase64String([System.IO.File]::ReadAllBytes($FilePath))
$PostText = @{fileName=$FileName; contents=$FileToBase64} | ConvertTo-Json -Compress
$PostBody = [Text.Encoding]::UTF8.GetBytes($PostText)
Invoke-RestMethod -Method POST -Uri $Url -Body $PostBody -ContentType application/json

実行してみましょう。
成功しました!

 以上、 OneDrive へのファイルのアップロードをアレコレと紹介しました。これだのアプローチ方法が用意されているので、利用シーンに合わせて様々に使い分けることができます。移動中でもテレワークでも、業務の自動化でもOneDriveにアクセスできるので働き方改革には必須のサービスとなっています。クラウドストレージとしてのOneDriveはPower AutomateやPower Apps、他のクラウドサービスや、オリジナルのアプリケーションと組み合わせて工夫次第では立派な業務システムの構築もできそうです。

著書の紹介欄

Hyper-Vで本格的なサーバー仮想環境を構築。仮想環境を設定・操作できる!

できるPRO Windows Server 2016 Hyper-V

◇Hyper-Vのさまざまな機能がわかる ◇インストールからの操作手順を解説 ◇チェックポイントやレプリカも活用できる Windows Server 2016 Hyper-Vは、仮想化ソフトウェア基盤を提供する機能であり、クラウドの実現に不可欠のものです。 本書では、仮想化の基礎知識から、Hyper-Vでの仮想マシンや仮想スイッチの設定・操作、プライベートクラウドの構築、Azureとの連携などを解説します。

初めてのWindows Azure Pack本が発売

Windows Azure Pack プライベートクラウド構築ガイド

本書は、Windows Azure PackとHyper-Vを利用し、企業内IaaS(仮想マシン提供サービス)を構成するための、IT管理者に向けた手引書です。試用したサーバーは、最小限度の物理サーバーと仮想マシンで構成しています。Windows Azure Packに必要なコンポーネントのダウンロード、実際にプライベートクラウド構築する過程を、手順を追って解説しています。これからプライベートクラウドの構築を検討するうえで、作業負担の軽減に役立つ一冊です。

ブログの著者欄

樋口 勝一

GMOインターネットグループ株式会社

1999年6月GMOインターネットグループ株式会社に入社。Windows Serverをプラットフォームとしたサービス開発から運用・保守まで幅広く担当。講演登壇や出版、ネット記事連載などでマイクロソフト社と強い信頼関係を構築。「マイクロソフトMVPアワード」を15度受賞し、インターネットソリューションのスペシャリストとして活躍。

採用情報

関連記事

KEYWORD

採用情報

SNS FOLLOW

GMOインターネットグループのSNSをフォローして最新情報をチェック