端末を使用してGoogleドライブからフォルダをダウンロードしたいのですが?それを行う方法はありますか?私はこれを試しました:
$ wget "https://drive.google.com/folderview?id=0B-Zc9K0k9q-WWUlqMXAyTG40MjA&usp=sharing"
しかし、このテキストファイルをダウンロードしています:folderview?id=0B-Zc9K0k9q-WdEY5a1BCUDBaejQ&usp=sharing
。端末からグーグルドライブフォルダをダウンロードする方法はありますか?
次のコマンドを使用して、公開共有ファイルをダウンロードできました。
$ wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME
ここで、FILEID
は実際のファイルIDに置き換える必要があります。 FILENAME
は、ダウンロードが保存されるパス/ファイル名です。
Fileidの代わりにfolderidを使用することはできません。次のHTML <div id="entry-0B0jxxycBojSwVW...
が見つかるフォルダビューでビューソースを使用しました。 0B
で始まる文字列はファイルIDでした。
大きすぎるGoogleドライブファイルの場合、「Googleはウイルススキャンを提供できません」というエラーメッセージが表示されますが、これが私が使用した解決策です。
まず、ここでファイルをダウンロードしてみます(上記の手順に従います)。
$ wget --save-cookies cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/Code: \1\n/p'
次に、コードを取得したら(Webページに出力され、上記のsedを使用して出力されます)、次のURLを使用します。
$ wget --load-cookies cookies.txt 'https://docs.google.com/uc?export=download&confirm=CODE_FROM_ABOVE&id=FILEID'
追加 -O FILENAME
をファイルに書き込む場合は、前のwgetステートメントにファイル名を指定します。
Goで書かれた drive と呼ばれる新しいオープンソースのマルチプラットフォームクライアントは、非常に優れており、フル機能を備えており、活発に開発されています。
Pullコマンドは、ローカルに存在しないGoogleドライブからデータをダウンロードし、Googleドライブに存在しないローカルデータを削除します。引数なしで実行して、現在のパスからすべてのファイルを取得します。
$ drive pull
マッチによるプルもサポートされています
$ cd ~/myDrive/content/2015 $ drive pull --matches vines docx
その他の例については、上記のリンクを参照してください。これらは氷山の一角にすぎません。
Ubuntu 17.04リポジトリには、rcloneという巨大なプログラムがあります。
$ Sudo apt update && Sudo apt install rclone
$ rclone config --> than follow the steps to setup your gdrive
これで、rclone copyを実行して、必要なすべてのものを同期できます。プロジェクトはあらゆる種類のクラウドをサポートしています。f.e.:
$ rclone sync /home/<usrname>/Desktop/yourfolder gdrivename:yourfolder
(私は約600 GBをアップロードし、rcloneを使用して数時間で1 TBをgdriveからgdriveへ、gdriveからubuntuへ、そしてubuntuからgdriveへと転送しました。
https://forum.rclone.org/t/can-copy-between-google-drive-accounts-without-download-and-upload-files/969/8
)
wget
は直接リンクのみを処理できますが、ここでは主な問題ではありません。 Googleドライブでは、ファイルをダウンロードする前に認証する必要があります。つまり、ファイルをダウンロードするにはWebブラウザーを使用する必要があります。端末にはいくつかのウェブブラウザがあります lynx がその例です。
(誰でもダウンロードできるように)ファイルを一般公開で共有することを選択した場合は、多数のGoogleドライブパーマリンクサービスのいずれかを使用できます。これらはwgetで動作するリンクを生成するはずだと思います。情報を検索したときに見つけた2つのリストを次に示します。 http://gdriveurl.com/http://gdurl.com/
Linuxを実行していると仮定すると、Googleドライブ用のオープンソース client があり、調べる価値があります。
オープンソースのLinux/Unixコマンドラインツール gdrive
を使用できます。
インストールするには:
ダウンロード バイナリ。お使いのアーキテクチャに適したものを選択します(例:_gdrive-linux-x64
_)。
パスにコピーします。
_Sudo cp gdrive-linux-x64 /usr/local/bin/gdrive;
Sudo chmod a+x /usr/local/bin/gdrive;
_
それを使用するには:
GoogleドライブフォルダのIDを確認します。そのためには、drive.google.com Webクライアントを使用して、ダウンロードするフォルダ内に移動します。ブラウザーのアドレスバーでURLを確認すると、_https://drive.google.com/drive/folders/0B7_OwkDsUIgFWXA1B2FPQfV5S8H
_のように表示されます。最後の_/
_の後ろの文字列を取得して、クリップボードにコピーします。これがフォルダのIDです。
フォルダーをダウンロードします。もちろん、次のコマンドでは代わりにフォルダーのIDを使用します。
_gdrive download --recursive 0B7_OwkDsUIgFWXA1B2FPQfV5S8H
_
ツールは最初の使用時に、Google Drive APIへのアクセス権限を取得する必要があります。そのため、ブラウザでアクセスする必要のあるリンクが表示され、次に、ツールにコピーして貼り付けるための確認コードが表示されます。その後、ダウンロードが自動的に開始されます。進行状況インジケータはありませんが、ファイルマネージャまたは2番目のターミナルで進行状況を確認できます。
出典:Tobiによるコメント stackoverflow.comの質問。 あそこにある私の同様の答え から適応された答え。
firefoxを使用している場合は、cligetアドオンをインストールしてみてください。プログラムをダウンロードするすべてのファイルについて、そのファイルをダウンロードするためのcurl、wget、またはaria2の直接リンクを表示します。私はそれを使用して、ssh経由で他のマシンにファイルをダウンロードします。リモートコンピューターに直接ダウンロードしてから自分のコンピューターからそのファイルをアップロードする方がはるかに高速だからです。これは、dropbox、gdriveなどでも機能します。
以下からバイナリをダウンロード link
chmod +x <binary>
./drive download id
確認コードのリンクが生成されます。リンクをクリックして、gdriveへのアクセスを許可し、ブラウザから確認コードをコピーします。貼り付けます。
わたしにはできる