Yandex.Disk tau txwv tsis pub siv cov khoom siv qhib rclone

prehistory

Hlo Habr!

Dab tsi ua rau kuv sau cov ntawv tshaj tawm no yog qhov yuam kev txawv txawv, uas nag hmo ntawm lub laptop nrog Linux (yog, kuv yog ib tus ntawm cov neeg coj txawv txawv uas siv GNU / Linux ntawm lub laptop) Kuv tau txais los ntawm cov ntsiab lus ntawm kuv Yandex. .Disk:

$ ls -l /mnt/yadisk
ls: reading directory '.': Input/output error
total 0

Kuv thawj qhov kev xav: lub network poob, tsis muaj teeb meem loj. Tab sis thaum sim remount lub directory, ib tug tshiab yuam kev tshwm sim:

$ sudo umount /mnt/yadisk && rclone mount --timeout 30m ya:/ /mnt/yadisk
2020/02/21 20:54:26 ERROR : /: Dir.Stat error: [401 - UnauthorizedError] Unauthorized (НС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½.)

Qhov no twb coj txawv txawv. Puas yog lub token rotten? Tsis muaj teeb meem, Kuv yuav tso cai dua!

$ rclone config
... (ΠΎΠΏΡƒΡ‰Ρƒ Ρ‚ΡƒΡ‚ вСсь Π²Ρ‹Π²ΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°) ..

Tom qab mus rau lub vev xaib thiab sim nkag mus rau qhov ntawd, kuv tau txais cov lus tshwj xeeb ntxiv:

Daim ntawv thov no tau raug thaiv rau cov haujlwm phem thiab yog li tsis tso cai nkag mus (unauthorized_client).

Thawj xav: dab tsi?

Hais txog rclone

Kev pab me ntsis:
rclone - nrov heev qhib kev siv hluav taws xob rau kev ua haujlwm nrog huab cia (rov ua dua sij hawm, ob, peb hais rau Habre). Tus sau hu nws "rsync rau huab cia", uas yog heev capacious. Tab sis kev ua haujlwm tsis txwv rau qhov no: ntxiv rau cov haujlwm rsync, nws tseem tuaj yeem txuas cov disks, ua cov haujlwm ncdu (uas, los ntawm txoj kev, ib zaug tso cai rau kuv txhawm rau txheeb xyuas qhov tsis raug suav ntawm qhov chaw dawb ntawm Yandex.Disk thiab ua tiav. daws qhov teeb meem no los ntawm kev pab txhawb nqa), thiab ib pawg ntawm lwm yam. Lub tshuab hluav taws xob txhawb nqa ntau lub huab cia, nrog rau ntau cov txheej txheem ib txwm muaj - WebDAV, FTP, rsync thiab lwm yam. Txhawm rau nkag mus rau Yandex.Disk, kev siv hluav taws xob siv official public API Disk.

Cov nqi hluav taws xob yog qhov tshwj xeeb thiab (hauv kuv lub tswv yim) sawv cev rau cov chav kawm ntawm cov kev pab cuam uas koj nruab ib zaug, thiab lawv nqa cov txiaj ntsig tas li.

Dab tsi tshwm sim?

Tig rau Google, Kuv pom tam sim ntawd tias kuv tsis nyob ib leeg. Noj kab laum hauv official github, nrog rau kev sib tham txog rooj sab laj.
Cov ntsiab lus: tus client_id ntawm cov khoom siv hluav taws xob raug thaiv los ntawm Yandex.Disk, uas yog vim li cas koj tsis tuaj yeem nkag mus ntxiv lawm. Koj tuaj yeem sim hloov tus client_id, tab sis nws tsis yog qhov tseeb tias tib txoj hmoo yuav tsis raug tus ID tshiab.
Txhawb teb muab tso rau tib lub rooj sab laj:

Qhov tseeb yog tias qhov kev pab cuam Rclone tso cai rau koj siv Yandex.Disk ua ib qho kev tivthaiv, thiab Yandex.Disk yog ib qho kev pabcuam tus kheej uas tsis yog tsim los daws cov teebmeem no. Yog li ntawd, peb tsis txhawb Rclone - Yandex.Disk txuas.

"Infrastructure Cheebtsam"? Zoo, yog tias koj ua tsis tau, ces tej zaum nws tau piav qhia hauv cov cai, kuv xav, thiab tsis muaj dab tsi zoo li ntawd hauv txoj cai ntawm lub disk nws tus kheej los yog nws pej xeem API kuv nrhiav tsis tau.

Ok, cia peb sau ntawv txhawb nqa.
Thawj cov lus teb yog sib xws rau cov lus tshaj tawm saum toj no (hais txog "cov khoom siv hauv vaj tse"). Okay, peb tsis txaus siab.

Kev sau ntawv ntxiv nrog kev txhawb nqa

YOG:

Koj puas tuaj yeem qhia rau kuv paub seb qhov kev pabcuam twg tau ua txhaum cai?
Kuv tau kawm cov ntsiab lus ntawm kev siv Yandex Disk thiab tsis muaj kev txwv tsis pub siv nws "raws li cov khoom siv hauv tsev".

Ntxiv mus, kuv tsis tuaj yeem siv cov nqi hluav taws xob los ntawm kuv tus kheej lub laptop ua haujlwm nrog lub disk. Qhov no tsis poob rau hauv "cov khoom siv hauv vaj tse" txhua. Tus txheej txheem disk neeg siv yog txaus ntshai, thov txim.

Txhawb Nqa:

Sergey, qhov tseeb yog tias Yandex.Disk feem ntau yog ib qho kev pabcuam tus kheej uas tsis tsim los rub tawm cov ntawv luam theej cia.
Koj tuaj yeem synchronize cov ntaub ntawv ntawm koj lub computer thiab Yandex.Disk, thiab tseem siv Disk web interface los rub tawm cov ntaub ntawv thiab ua haujlwm nrog lawv.

Yog tias vim li cas koj tsis txaus siab rau peb qhov kev pab cuam, thov hu rau lawv. Kev lig kev cai, peb mloog cov neeg siv kev tawm tswv yim thaum tso cov khoom hloov tshiab.

Koj tuaj yeem paub koj tus kheej nrog cov ntaub ntawv tswj hwm kev siv cov kev pabcuam, tshwj xeeb yog "Kev Pom Zoo rau Cov Neeg Siv Khoom Siv Yandex", luam tawm ntawm: https://yandex.ru/legal/rules/, nrog rau "Cov ntsiab lus ntawm kev siv Yandex.Disk kev pabcuam": https://yandex.ru/legal/disk_termsofuse

Txhawm rau daws cov teeb meem uas xav tau ntau lub zog, peb pom zoo kom siv Yandex.Cloud. Nov yog lwm qhov kev pabcuam huab Yandex, uas tau tsim los daws teebmeem kev lag luam. Koj tuaj yeem kawm paub ntau ntxiv txog Yandex.Cloud ntawm no: https://cloud.yandex.ru

YOG:

Koj tsis teb kuv lo lus nug. Thov qhia rau kuv seb qhov twg ntawm cov kev pabcuam kev cai ua txhaum kev siv rclone? Kuv ua tib zoo kawm cov cai los ntawm koj qhov txuas (txawm tias ua ntej koj xa nws).

Tsis ntev los no koj tau sau ib tsab ntawv uas Yandex txhawb nqa OpenSource thiab tsis muaj OpenSource Yandex thiab Internet niaj hnub yuav tsis muaj (https://habr.com/ru/post/480090/).

Thiab tam sim no koj tab tom thaiv cov khoom siv OpenSource rau qhov laj thawj deb.

Los ntawm txoj kev, qhov kev zov me nyuam tsis "download tau cov ntawv luam theej cia"; qhov kev pab cuam yog tsim los ua haujlwm nrog huab cia, suav nrog synchronizing cov ntaub ntawv ntawm lub computer thiab Yandex.Disk. Thiab qhov no yog kuv qhov tseem ceeb siv-cov ntaub ntawv siv hluav taws xob, uas tam sim no tsis muaj.

Txhawb Nqa:

Raws li kab lus 3.1. "Tus Neeg Siv Daim Ntawv Pom Zoo" Yandex muaj txoj cai los tsim kev txwv kev siv cov kev pabcuam rau txhua tus neeg siv, lossis rau qee pawg ntawm Cov Neeg Siv (nyob ntawm qhov chaw ntawm Tus Neeg Siv, hom lus uas muab kev pabcuam, thiab lwm yam), suav nrog: lub xub ntiag / tsis muaj qee qhov kev pabcuam, lub sijhawm khaws cia ntawm kev xa ntawv hauv Yandex.Mail kev pabcuam, lwm yam ntsiab lus, ntau tshaj plaws ntawm cov lus uas tuaj yeem xa lossis tau txais los ntawm ib tus neeg siv sau npe, qhov loj tshaj plaws ntawm kev xa ntawv lossis qhov chaw disk, qhov siab tshaj plaws ntawm kev hu mus rau qhov kev pabcuam rau lub sijhawm teev tseg, lub sijhawm ntev tshaj plaws cov ntsiab lus khaws cia, tshwj xeeb tsis pub rub tawm cov ntsiab lus, thiab lwm yam. Yandex tuaj yeem txwv tsis siv neeg nkag mus rau nws cov kev pabcuam, thiab tseem tso tseg tsis lees txais cov ntaub ntawv uas tau tsim tawm (piv txwv li, spam mail).

Tus neeg siv kuj tau ceeb toom txog qhov no hauv kab lus 4.6. "Cov ntsiab lus ntawm kev siv Yandex.Disk."

Thov nco ntsoov tias "Cov ntsiab lus ntawm Kev Siv Yandex.Disk" kuj tsim lub luag haujlwm rau tus neeg siv kom ua raws li kev ncaj ncees thiab tsis txhob ua txhaum txoj haujlwm ntawm Kev Pabcuam. Tus neeg siv kuj lees txais kev txwv tsis pub teeb tsa cov ntaub ntawv loj sib faib siv cov haujlwm ntawm Kev Pabcuam.

Yandex muaj txoj cai los siv cov cai, txwv thiab txwv txhawm rau tiv thaiv, txwv thiab txwv kev sib faib cov ntaub ntawv loj raws li cov cai ntawm kab lus 4.5. cov "Cov ntsiab lus".

Cov lus teb kawg tau ua kom pom tseeb. Tshwj xeeb tshaj yog thawj ob kab lus nrog siv rau kab lus 3.1. Yandex "Cov Neeg Siv Daim Ntawv Pom Zoo" thiab nqe lus 4.6. "Cov ntsiab lus ntawm kev siv Yandex.Disk." Cov ntawv nyeem ntawm 4.6 tsis tau muab ntawm no, tab sis kuv yuav muab rau ntawm no:

4.6. Yandex muaj txoj cai los tsim ib qho kev cai, txwv thiab kev txwv (cov txheej txheem, kev cai lij choj, koom haum lossis lwm yam) ntawm kev siv Cov Kev Pabcuam, thiab tuaj yeem hloov pauv ntawm nws tus kheej txiav txim siab, yam tsis muaj ntawv ceeb toom ua ntej rau Tus Neeg Siv. Nyob rau hauv rooj plaub uas qhov no tsis txwv los ntawm txoj cai, cov cai teev tseg, kev txwv thiab kev txwv yuav txawv rau ntau pawg neeg siv.

Cov lus xaus?

Tsis ntev los no, nyob zoo pob hauv nws tshaj tawm ntawm no ntawm Habre sau tias Yandex ntseeg tias:

Peb ntawm Yandex ntseeg tias niaj hnub Is Taws Nem yog tsis yooj yim sua yam tsis muaj qhov qhib kab lis kev cai thiab cov neeg uas nqis peev lawv lub sijhawm los tsim cov kev pabcuam qhib.

Tab sis nyob rau hauv kev xyaum nws hloov tawm txawv kiag li. Ib qho kev siv hluav taws xob zoo tshaj yog thaiv rau qee yam uas tsis txwv los ntawm cov cai tswj kev pabcuam. Vim tias qhov hluav taws xob tso cai rau koj siv qhib rau pej xeem Lub hom phiaj ntawm Disk API yog rub tawm cov ntaub ntawv. Lawv thaiv tsis yog ua txhaum txoj cai ntawm kev pabcuam, tab sis vim lawv tuaj yeem ua tau.
Dab tsi yog qhov txawv dua ob yog tias nws tsis yog cov neeg ua txhaum cai tshwj xeeb uas raug thaiv (nws kuj tseem tsis paub meej qhov twg; cov cai tsis txwv tsis pub siv lub disk rau cov ntawv luam theej txhua qhov chaw). Ib lub cuab yeej uas nws cov haujlwm thaub qab tsuas yog ib qho ntawm ntau yog thaiv.

Dab tsi yog ib qho kev tivthaiv infrastructure yog thiab vim li cas lawv tsis tuaj yeem siv nrog lub disk kuj tsis meej. Txawm hais tias lub browser tuaj yeem siv los ua "cov khoom siv hluav taws xob"; nws puas tuaj yeem txwv tsis pub siv cov disk hauv browser?

Kuv yuav ua li cas?

Tam sim no, siv koj tus client_id thiab txav mus rau koj lub neej. Tab sis, txiav txim los ntawm cov lus teb los ntawm kev txhawb nqa, peb tuaj yeem cia siab tias yuav txuas ntxiv ntawm kev yos hav zoov thiab thaiv lwm tus neeg siv khoom, tus neeg siv-tus neeg sawv cev rclone, lossis txawm tias qee txoj hauv kev los thaiv cov khoom siv.

PS Kuv vam thiab cia siab tias yuav muaj ib qho yuam kev yooj yim lossis kev nkag siab yuam kev. Yandex muaj cov kws tshaj lij tshwj xeeb (Kuv paub ntau ntawm lawv tus kheej) thiab ntawm lawv, kuv paub tseeb, muaj cov neeg siv rclone.

Hloov kho 24.02.2020:
Π’ tso tawm 690 Xov tooj cua-T podcast, tus tswv tsev uas tseem yog tus hwm Bobuk, tau tham txog kev thaiv cov rclone. Pib ntawm 1:51:40.

Tau qhov twg los: www.hab.com

Ntxiv ib saib