SharePointのドキュメントのURLが長いことに対する次善の策

SharePointの!!!!!!!! URLが!!!!!!!! 長過ぎる!!!!!!!!
Added by kanata 5 months ago

動機

SharePointのドキュメントのURLが長すぎてちょいちょい困る

メールを書いていた時のこと

hogehogeさま

kanataです。
ご要望のドキュメントは以下になります。

https://example.sharepoint.com/teams/xxxxxxxxxx/Share%20Document/General/
%E5%8F%82%E8%80%83%E8%B3%87%E6%96%99/%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92
%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/01_%E8%A6%81%E4%BB
%B6%E5%AE%9A%E7%BE%A9/02_%E3%81%B5%E3%81%92%E3%81%B5%E3%81%92%E8%A8%AD%E8
%A8%88/%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92%E4%BB%95%E6%A7%98%E3%81%AB%E3
%81%A4%E3%81%84%E3%81%A6.xlsx?d=19dd17a1440c5829af4d9wsf6c6w7baag5&csf=1&
e=G7HZb6

長!これは・・・

長くて困る。けっこう困る。これが色々な所に書いてあるのを想像してみて。。
メールだけじゃなく、チャットもフォーラムも社内掲示文書も全部こうなっちゃう
世界がURLで溢れ返る

機密性のある情報だとbit.lyとかを使うわけにもいかず
メーラーによっては折り返されたりしてURLが壊れるし
URLからフォルダの階層やファイル名が読み取れると嬉しいんだけど、これだとぜんぜんわからん。。

う~ん、こう書いてみたらどうだろう

hogehogeさま

kanataです。
ご要望のドキュメントは以下になります。

格納先(https://example.sharepoint.com)
一般/参考資料/ほげほげプロジェクト/01_要件定義/02_ふげふげ設計/ほげほげ仕様について.xlsx

うん、まぁこれなら・・・と思ったんだけれど、このファイルパスをSharePointから取得できないので手作業で打つしかない。しんどい無理。

SharePointのURLを短く(読みやすくする)する工夫

結局、これで多少良くなる

  • URLエンコードを元の日本語(UTF-8)に戻す( 日本語に戻しても最近のブラウザは、このURLをよしなに解釈してくれます たいていのユースケースでは問題にならないハズ )

  • URLの?以降は削除できる(ちょっと短くできる)

これをシェル芸でやってみます

$ URL='https://example.sharepoint.com/teams/xxxxxxxxxx/Share%20Document/General/%E5%8F%82%E8%80%83%E8%B3%87%E6%96%99/%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/01_%E8%A6%81%E4%BB%B6%E5%AE%9A%E7%BE%A9/02_%E3%81%B5%E3%81%92%E3%81%B5%E3%81%92%E8%A8%AD%E8%A8%88/%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92%E4%BB%95%E6%A7%98%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.xlsx?d=19dd17a1440c5829af4d9wsf6c6w7baag5&csf=1&e=G7HZb6'
$ printf '%b\n' "${URL//%/\\x}"|cut -d'?' -f 1
https://example.sharepoint.com/teams/xxxxxxxxxx/Share Document/General/参考資料/ほげほげプロジェクト/01_要件定義/02_ふげふげ設計/ほげほげ仕様について.xlsx

ふんふん、だいぶ読みやすくなりました。
こんな感じにするとパンくずリストっぽいのも作れますね

$ printf '%b\n' "${URL//%/\\x}"|cut -d'?' -f 1|cut -d'/' -f 7-|sed 's|/| > |g'
General > 参考資料 > ほげほげプロジェクト > 01_要件定義 > 02_ふげふげ設計 > ほげほげ仕様について.xlsx

という訳でツールを作った

GetSharePointPATH.sh

#!/bin/bash

# 引数チェック
if [ -z "$1" ]
then
  echo "引数にURLが必要です"
  exit 1
fi

# URLデコードして出力
echo
printf '%b\n' "${1//%/\\x}"|cut -d'?' -f 1

# パンくずリスト生成
# cut -d'/' -f 7- の7の所は環境によって数字を増減させて調整してみて
echo
printf '%b\n' "${1//%/\\x}"|cut -d'?' -f 1|cut -d'/' -f 7-|sed 's|/| > |g'

exit 0

試す

$ ./GetSharePointPATH.sh 'https://example.sharepoint.com/teams/xxxxxxxxxx/Share%20Document/General/%E5%8F%82%E8%80%83%E8%B3%87%E6%96%99/%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/01_%E8%A6%81%E4%BB%B6%E5%AE%9A%E7%BE%A9/02_%E3%81%B5%E3%81%92%E3%81%B5%E3%81%92%E8%A8%AD%E8%A8%88/%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92%E4%BB%95%E6%A7%98%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.xlsx?d=19dd17a1440c5829af4d9wsf6c6w7baag5&csf=1&e=G7HZb6'

https://example.sharepoint.com/teams/xxxxxxxxxx/Share Document/General/参考資料/ほげほげプロジェクト/01_要件定義/02_ふげふげ設計/ほげほげ仕様について.xlsx

General > 参考資料 > ほげほげプロジェクト > 01_要件定義 > 02_ふげふげ設計 > ほげほげ仕様について.xlsx

この出力結果をメールにコピペすればいいようになりました!

このツールを添付しておきます
Microsoftさんが短縮URL機能を作ってくれるまでこれでしのごっと

GetSharePointPATH.sh Magnifier - SharePointのURLからなんかいい感じにするツール (365 Bytes) kanata, 02/28/2022 09:00 PM


Comments

Added by kanata about 1 month ago

SharePointのファイル直リンクから格納先フォルダのPATHを調べる

SharePointでドキュメントをファイル直リンクを共有された時「いや、これどこに格納されているか知りたいねん。。」となる時があります。
しかもこれ、リンククリックするとアプリで開きたくてもブラウザで開いちゃうことが多いんですよね。もお!

ですが、この技を使うとどこに格納されているか解るんです!超便利!

Add picture from clipboard (Maximum size: 100 MB)