ラベル ツール の投稿を表示しています。 すべての投稿を表示
ラベル ツール の投稿を表示しています。 すべての投稿を表示

2019年12月16日月曜日

gdrive コマンドで API 使用制限(Rate Limit Exceeded)が出た場合の対応方法

gdrive (GitHUB) コマンドは、 Googleドライブを操作するコマンドツールの一つです。Linux OS 上のデータバックアップなんかに役立ったりします。使い方については過去に

にて紹介しています。
ただしこの gdrive、開発者がもつアカウントで APIにアクセスするため、皆がつかうと一日のAPI制限にすぐに到達してしまいます。これを解決する方法について纏めておきます。

解決策は、「gdrive を自分のアカウントの APIを使ってコンパイルする」です。

gdrive を自分のアカウントの APIを使ってコンパイルする


1. Google Developer Console で Client ID と Client Secret を発行する
2. gdrive ソースに「1」の情報を付与してコンパイル(go言語)

という流れになります。


をもとに当時試した資料を


においておきます。

2019年12月16日 @kimipooh

2018年9月6日木曜日

【Mac】gdrive ツールを利用して、写真データをGoogleドライブのOCRに一括処理しよう!

Googleドライブには、PDFや写真のOCR機能がついています。
サポートされている言語も多くて、最近ではクメール語などを試してみましたが、結構使えそうだなぁと思います。で、単体でのやり方は簡単なのですが一括処理の方法が面倒なため、備忘録として残しておきます。Windowsならバッチファイルの知識、Macならシェルスクリプトの知識があると理解度があがります。以下は、すべてMacでの利用に特化した内容です。Windowsについては、GoogleDriveのOCR機能を使って、大量の画像ファイルをテキストに変換する の情報を参考にすればできるんじゃないかなーと思います。

単体でのやり方


下記の関連サイトをみると簡単にできるはずです。


一括処理のやり方


Google Drive CLI Client ツールであり、 gdrive を使った一括処理ができます。

必要なこと


  1. Google Drive のアップロード先フォルダのフォルダIDをメモる
    https://drive.google.com/drive/folders/◯◯◯◯◯
     
    のようになっていますが、この◯◯◯◯フォルダIDになります。
  2. gdrive を使えるようにする
     【G Suite 専用】G Suite ユーザー会 EDU分科会参加 - Google Drive CLI Client ツール による Google Drive 制御 の「利用準備」を参考にして、gdrive list で Googleドライブのファイル一覧が表示されるまで作業しておきます。

Step 1. OCRしたい写真を用意する


仮に ダウンロードフォルダ(~/Download)の sample フォルダに、拡張子 jpg ファイルをいくつか入れたとします。

/Users/ユーザー名/Download/sample
┣ ○○1.jpg
┣ ○○2.jpg
┣ ○○3.jpg
┣ ○○4.jpg
┣ ○○5.jpg

ここでの写真の名前はなんでも構いません。

Step 2. OCRしたい写真を調整


  • 画像の向きを調整
    プレビューアプリで開いて、回転ツールを使って向きを調整して保存しなおします。
  • 画像容量を2MB以下にする(しなくても動きましたけれど、、保証外なので)
  • その他、https://support.google.com/drive/answer/176692 に書かれた注意点を守る


Step 3. ターミナルより、gdrive コマンドにてOCR変換しつつアップロード(単体)


まずは単体でテストします。
  • gdrive import ~/Downloads/sample/○○1.jpg  -p フォルダID
これで、OCRされた結果のGoogleドキュメントが、フォルダIDのGoogleドライブ内のフォルダにアップロードされます。写真自体をアップロードしたい場合には、 import を upload に変えてください(gdrive upload ~/Downloads/sample/○○1.jpg  -p フォルダID)

Step 3. ターミナルより、gdrive コマンドにてOCR変換しつつアップロード(複数)


まずは複数のコマンドを組み合わせて、gdrive の単体実行を複数実行するようにします。
  • ls ~/Downloads/sample/*.jpg | awk '{ printf "gdrive import %s -p フォルダID\n", $1}'
上記がダウンロードフォルダ→sampleフォルダ内にある拡張子 jpg ファイルに対して、gdrive コマンドを発行するためのコマンドです。

ここで実際に試すために画像として次の名前を使うことにします。
  • IMG_0945.jpg ベトナム語の料理メニュー
  • IMG_1232.jpg ベトナム語の料理メニュー
  • IMG_1546.jpg ラオ語の料理メニュー
  • 遺跡案内.jpg クメール語の遺跡案内看板

すると青文字のコマンドを実行すると、

gdrive import /Users/ユーザー名/Downloads/sample/IMG_0945.jpg -p フォルダID
gdrive import /Users/ユーザー名/Downloads/sample/IMG_1232.jpg -p フォルダID
gdrive import /Users/ユーザー名/Downloads/sample/IMG_1546.jpg -p フォルダID
gdrive import /Users/ユーザー名/Downloads/sample/遺跡案内.jpg -p フォルダID

のようなコマンドが4つ出てきます。

次に一括でこれらのコマンドを実行してみましょう。最期ほどの青文字に対して | sh を加えています。 
  • ls ~/Downloads/sample/*.jpg | awk '{ printf "gdrive import %s -p フォルダID\n", $1'} | sh

Imported 文字列 with mime type: 'application/vnd.google-apps.document'
Imported 文字列 with mime type: 'application/vnd.google-apps.document'
Imported 文字列 with mime type: 'application/vnd.google-apps.document'
Imported 文字列 with mime type: 'application/vnd.google-apps.document'

ということでアップロードされました。


上図にあるように Googleドキュメントとしてアップロードされています。
日本語も問題なくアップロードされています。

たとえば

© ເສັ້ນຫມີ່ເຫຼືອງໄກ່ລາດ - chicken noodle

- ນ້ໍາຊຸບໃສ ໄກ່ລາດ ກະດູກໂຄ່ຍຫມູ, ເສັ້ນຫມີ່ເຫຼືອງໂຮມເມດ ສູດ“ເສັ້ນເສັ້ນ” - ຕ່ອນໄກ່ລາດ , ລູກຊີ້ນຫມູ ແລະ ຕ່ອນເລຶອດ , ໂຮຍຫນ້າດ້ວຍຫອມບົ່ວ , ຫອມເປ , ຫອມປ້ອມ ແລະ ຜັກທຽມຈຽວ
- Chicken, pork soup,homemade noodle by “ sensen “ - Chicken, pork meat ball and chicken blood, with garlic and spring onions


これをみると、+ は読み取れてませんが、割といけてるっぽく思います。
改行はされずに抽出されているところが見づらいかなとは思います。
*ラオ語の専門家じゃないので、正しく抽出できているかは調べていません。目視で大体あってるかなーという感じと、Google翻訳で一応意味が通るなというぐらいです)

以上のように、写真の場所を ダウンロードフォルダ内の sample フォルダに固定するなら、そこに写真をいれて、あとはアップロード先のフォルダIDを指定すれば手軽に一括処理できそうです。ただ大量にやった場合に、どこまで耐えられるかはわかりません。

2018年9月6日 @kimipooh
2019年12月5日 修正(コメントで指摘されていた部分)

2017年8月22日火曜日

【G Suite 専用】G Suite ユーザー会 EDU分科会参加 - Google Drive CLI Client ツール による Google Drive 制御

8/21、G Suiteユーザー会初EDU分科会が Google東京オフィス内で開催されました。

初めての EDU分科会ということで G Suite for Education を導入している教育機関ならではの事例や悩みなどを聞けるかなぁと思ってワクワクしていました。

内容についてどこまで公開可能か分からないので、ここで詳細をお伝えするのは控えておきます。個人的にはいろいろためになる話が聞けて参加してよかったなぁと思います。最後にあったディスカッション(アンカンファレンス)もかなり面白かったのですが、時間が押していたこともあり、中途半端で終わってもったいなかったなーと思いました。今回2時間でしたが、これは3時間ぐらい欲しいかなというところです。

さて、紹介のみされた Google Drive CLI Client ツールについて、実際に MacOS Sierra (10.12.6)と Linux (Redhat EL 6)で動作確認したので、やり方について載せておきます。これは一般 Googleドライブでもできるはずです。

Google Drive CLI Client ツール


今回の一番大きな収穫はこれかなと思いました。
G Suite for Education の強みは、容量無制限の Google Drive が使えることです。
それを利用すれば、サーバーのバックアップも Google Drive に保存すると有効活用できると思いませんか。WordPress のプラグインで Google Drive に保存することもやったりしていましたが、時々認証問題でこけることがあります。これが WordPress のコマンドツール WP-CLIのように、コマンドベースで Google Drive に保存できるとなると、バックアップとしてかなりつかえるんじゃないかと期待しています。
このあたりは実際にやってみて、別途本ブログでまとめてみたいと思います。

インストール方法(MacOSX 編)


インストールは、Homebrew が入っていれば、 ターミナルアプリより
  • brew install gdrive 
でインストールできます。

Linux や MacOSXのネイティブコードが
にあるので、ここからダウンロードして実行権限をつけると利用できます。然るべきパスに配置(/usr/local/binなど)におけば便利に利用できるかと思います。ただ入れなくても使えます(AMIMOTOで使えたよ!)。また、ユーザーごとにできるのがよいですね!設定ファイルが「$HOME/.gdrive/token_v2.json」に保存されます。

利用準備


まずはじめに、Googleアカウントとの接続が必要です。

下図がその手順①から④になります。

① gdrive list 

というコマンド入力して、Enterを押すと、

Authentication needed
Go to the following url in your browser:https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=......

と出て来るので、ブラウザにURLをコピーしてアクセス。
利用したいGoogleアカウントでログインし、gDriveのアクセスを許可します。
すると確認コードらしきものがでてきます。


これを③ Enter verification code: の横にコピー&ペーストしてEnter。
すると認証は完了し、gdrive list で最近の 30件のファイルリストが表示されます。
④は gdrive を扱う上で重要な、ファイルやフォルダの IDとなります。

Googleドライブでたとえばフォルダについては
  • https://drive.google.com/drive/folders/◯◯◯◯◯
のようになっていますが、この◯◯◯◯がフォルダIDになります。

例1)test フォルダ内のファイルリストを表示する
  • gdrive list --query " 'testフォルダID' in parents "
例2)test フォルダ内に、gdrive フォルダを作成する
  • gdrive mkdir  --parents 'testフォルダID'  gdrive
例3)test フォルダ内に、ファイル(hogehoge)をアップロードする
  • gdrive upload  hogehge  --parent   'test フォルダID' 
例4)test フォルダ内に、フォルダ(hogehoge)をアップロードする
  • gdrive upload  hogehge  --parent   'test フォルダID'  --recursive
例5)test フォルダ内に、hogehogeフォルダを tar+gzip 圧縮 し hogehoge.tar.gz 名でアップロードする
  • tar czvf  -   hogehoge  | gdrive upload  -  --parent  'test フォルダID'  hogehoge.tar.gz
例6)test フォルダ内に、フォルダ(hogehoge)を増分アップロードする
  • gdrive sync upload  hogehoge   'test フォルダID' 
※ 最初の sync 時のみ、test フォルダは空にしておく必要があります。

例7)test フォルダ内に、フォルダ(hogehoge)を差分アップロードする
  • gdrive sync upload  hogehoge   'test フォルダID'  --delete-extraneous 
※ 最初の sync 時のみ、test フォルダは空にしておく必要があります。

サーバーなら、例5)が使えるかなと思います。
例7はファイルやフォルダのタイムスタンプがアップロードした日時になってしまうので、使えないかなぁと思います。

これ WordPress を含むサイトでも使えそうですね。
メインにつかうにはどの程度安定性があるか不明なので、セカンドバックアップとしては有用かなーと思います。

またファイルを探し出したり、フォルダを作成したり削除したりとコマンドベースでいろいろできるのがよいですね!これはかなり使えそうです!

検索パラメータ(--query / -q オプション)



設定ファイル


$HOME/.gdrive/token_v2.json 


2017年8月22日 @kimipooh

2017年7月13日木曜日

【回答者向け】Googleヘルプフォーラムの質問一覧をざっとチェックするのに便利なCSS #hadfieldnew No.2

【回答者向け】Googleヘルプフォーラム(GPF)の質問一覧をざっとチェックするのに便利なCSS #hadfieldnew で回答者向けにCSS調整なんかやってましたが、本日 2017年7月13日に フォーラムの CSSが変更されて効果がなくなりました。

それから3,4時間コードを眺めて、一覧表示部分については修正できたと思います。


フォーク元へプルリクおくる時間がないので、とりあえずフォークした先を直して、作者の issue になおしたぜ〜っていっておきました。

何が嬉しいの?


ざっと纏めて質問をチェックして、すばやく回答するのに便利と感じてます。
利用は、「表示を縮小」モードのみです。本CSSを適用後は、無駄なお知らせがなくなり、各質問は1行で収まるようになってますよね!
ん?右側のボタンがずれてるって。。。はい、これは英語版 フォーラムと微妙にpositionが異なるのです。何故か?CSSに詳しくない筆者にきかれても〜、まぁ動いてるからいいじゃない〜ぐらいです、はい・・・。

通常


本CSS適用後


どうやって利用するの?



に詳しく書いてますので参照してみてください。

2017.07.13 @kimipooh

2017年1月20日金曜日

朗報! Chrome 用テキストエンコーディング拡張機能が公開されていた!

【備忘録】Chrome 55 より、テキストエンコーディングメニューが削除された・・・ で呟いた通り、Chrome 55からテキストエンコーディングメニューが削除されました。しかーし、やはり使いたい人がいるのですね、拡張機能として開発されたものが公開されてました。

この拡張機能を Chromeにインストールすることで、コンテキストメニュー(右クリック | MacならCtrl+クリック)に「テキストエンコーディング」メニューが出て従来通りっぽい使い方ができます。

情報源


Chrome ヘルプフォーラムのエンコードの変更ができなくなりました にて、トピ主さんが探したものを情報共有してくださいました。Chrome 55が出た頃にないかなーと探してましたがなかったのですが、ようやく出てきてくれた!って感じですね!

検証

2015年11月19日木曜日

【備忘録】GmailへのメールインポートツールをGoogleがGitHUBで公開・・・

Google、Gmailへの古いメールのインポート・ツール2種類をオープンソース化してGitHubに公開(Techcrunch)に掲載されているのをみて、「おお!」と思いました。

Google Open Source Blogでも、「New open source tools to import mail to Gmail」ということで2015年11月17日(米国時間)で発表してますね。

ちょっとしたメールデータなら、IMAP接続したクライアントから移せばいいや!!というのが速いと思いますが、大量とかcronでやりたいとかいう管理者であればかなり使えるんじゃないでしょうか。

今すぐは必要ないかもしれませんが、備忘録として残しておきます。

Mail Importer for Gmail


GitHUB: https://github.com/google/import-mailbox-to-gmail

mbox形式のメールボックスをGoogle Apps for Work管理者が一括してインポートしちゃえるツールみたいですね。

Mail Importer


GitHUB: https://github.com/google/mail-importer

こちらユーザー用かなと思います。
インポートしたいGmailのGoogleアカウントで、Google Developers Consoleにアクセスして Gmail API経由でツールを利用できるように認証情報をゲットして、ツール(java)でThunderbirdのメールボックスを指定してやればいいって感じですね。
フムフム

2015年11月19日 @kimipooh

2015年10月2日金曜日

【回答者向け】Googleヘルプフォーラムの質問一覧をざっとチェックするのに便利なCSS #hadfieldnew

Googleヘルプフォーラムの存在をご存知ですか。
日本でいうなら、Yahoo知恵袋などのような存在で、Googleプロダクトごとに存在しています。すべてのプロダクトであるわけでもなく、日本語の場合には、Gmailヘルプフォーラムを始め、14のフォーラムがあります。

現状、Adwardsのみ別システムになってますけど、まぁこれは広告主用なので別扱いなのかなと思います。その他にもGoogle+を利用したコミュニティやTwitterを使ったHelp on Socialなどもあります。

質問一覧の枠が大きくて見づらいと思ったことはありませんか。


   ※2015年10月2日時点のヘルプフォーラムのコンパクトビュー


うんそうだね!っと思ったそこのあなた


これから紹介する、Googleプロダクトフォーラムのコンパクトビューを超コンパクトにするCSSを使ってみると便利だと思いますよ!適応するとコンパクトビューが、下記のような表示になります。

   ※2015年10月2日時点のヘルプフォーラムのコンパクトビューをカスタムしたビュー


利用するCSS


2015年7月13日月曜日

【備忘録】Gmail Postmaster Tool

7月9日にリリースされたみたいですね。
いわゆる重要なメールを迷惑メールにしないよう登録するツールです。
ドメイン(@より右側)に対する設定になりますが、登録する際にはドメイン側の対応が必要になります。つまりは、ドメイン管理者じゃないと設定できないってことで、メールアドレス提供元のためのツールですね。

ドメイン側の対応


にアクセスし、「+」より設定したいドメインを入力します。
あとは、DNSのTXTあるいはCNAMEレコードを設定し、Verifyするってことになります。

*** has been added to your verified domains

手持ちの独自ドメイン (Google Apps 利用)について設定しようとしたら、「すでにVerityされているよ!」っていわれました。
たしかに DNS には Google Apps での推奨SPF設定 をしてます。
だからかもしれませんね。

とはいえ、そのまま Postmaster Toolsには、 Status Verified として登録されているから、これはこれで安心できていいかなぁ。

参考情報

2015年7月13日 @kimipooh