Microsoft OneDrive Business / Office 365 Pro ให้บริการพื้นที่เก็บข้อมูลบนคลาวด์ 1 TB แต่น่าเสียดายที่ไม่เคยมีวิธีการซิงค์บน Linux
Microsoft OneDrive Business / Office 365 Pro ให้บริการพื้นที่เก็บข้อมูลบนคลาวด์ 1 TB แต่น่าเสียดายที่ไม่เคยมีวิธีการซิงค์บน Linux
คำตอบ:
ปัจจุบันการทดลอง onedrive-d เป็นโปรแกรมโอเพนซอร์สที่สามารถซิงค์บัญชี OneDrive ส่วนบุคคลได้เนื่องจากไม่ยอมรับลิงก์ Microsoft Sharepoint นี่คือวิธีการซิงค์ OneDrive Business / Office 365 โดยใช้GoodSync สำหรับ Linuxซึ่งให้บริการฟรีสำหรับใช้ส่วนตัว
ติดตั้งเวอร์ชั่นที่เหมาะสมกับเครื่อง Linux ของคุณเช่น:
./goodsync-linux-x86_64-release.run
ตอบโดยn o สำหรับทั้งการตั้งค่า GoodSync Connect และ GsServer Web UI
https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspx
และขึ้นอยู่กับว่ามันจะได้รับของคุณเชื่อมโยงซิงค์office365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents
ซึ่งจะเป็นสร้างไฟล์ใหม่ในโฟลเดอร์ย่อย. goodsync ในบ้านของคุณ:
gedit ~/.goodsync/jobs.tix
ป้อนรหัสต่อไปนี้ในไฟล์และบันทึก:
<Job>
Name = "OneDrive_Sync"
Side1 = <SideOptions>
Dir = <Connect>
Url = "put_your_syncing_link_here"
UserID = "put_your_OneDrive/Office365_Bussiness_email_here"
</Connect>
</SideOptions>
Side2 = <SideOptions>
Dir = <Connect>
Url = "file:///your_home_folder/one_drive_folder"
</Connect>
</SideOptions>
Direction = 0
ExcludeHidden = No
ExcludeSystem = No
DetectMovesAndRenames = Yes
LinksOption = 1
ExcludeEmptyFolders = No
LimitChangesPercent = 100
AutoResolveConflicts = 3
DetectMovesAndRenames = Yes
</Job>
เริ่มกระบวนการซิงค์:
gsync sync "OneDrive_Sync"
ในขั้นตอนนี้เว็บเบราว์เซอร์ของคุณจะเปิดหน้า OneDrive / Office 365 และขออนุญาตจากคุณเพื่ออนุญาตให้ Goodsync เข้าถึงบัญชีของคุณ หลังจากป้อนการซิงค์ข้อมูลรับรองของคุณจะเริ่มขึ้น
ข้อ จำกัด : Microsoft ไม่อนุญาตการร้องขอ URL ที่มีความยาวมากกว่า 270 อักขระดังนั้น GoodSync จึงไม่สามารถซิงค์ไฟล์ที่มีชื่อพา ธ แบบยาว
สนุก!
มีไคลเอ็นต์ OneDrive ในที่เก็บเริ่มต้นของ Ubuntu ใน Ubuntu 18.04 และใหม่กว่า OneDrive เป็นระบบจัดเก็บข้อมูลบนคลาวด์ของ Microsoft แพคเกจนี้ให้บริการไคลเอนต์บรรทัดคำสั่งที่เชี่ยวชาญในการซิงโครไนซ์กับที่เก็บข้อมูลบนคลาวด์ OneDrive
ติดตั้งด้วย:
sudo apt install onedrive
เมื่อเรียกใช้ครั้งแรกระบบจะขอให้คุณรับรองความถูกต้องด้วยลิงก์ หลังจากการตรวจสอบคุณสามารถเปิดใช้ deamon ด้วยแล้วsystemctl --user enable onedrive
systemctl --user start onedrive
คำอธิบายเพิ่มเติมสามารถพบได้ใน man onedrive
manpage ง่ายมากในการติดตั้งและใช้เวลาเพียงประมาณห้านาที
ในขณะที่เครื่องมือดั้งเดิมและที่ใช้กันทั่วไปonedrived
โดย xybu ยังคงไม่รองรับ OneDrive for Business แต่เป็น OneDrives ส่วนบุคคลเท่านั้น อย่างไรก็ตามมีทางแยกของโครงการนี้ใน GitHub โดย derrix060ที่มีการใช้งาน (แต่ยังมีข้อบกพร่อง ) สำหรับลูกค้าธุรกิจ
คำเตือน:เมื่อคุณใช้วิธีนี้ฉันขอแนะนำให้ตรวจสอบว่าไฟล์มีการซิงโครไนซ์อย่างถูกต้องเสมอโดยตรวจสอบออนไลน์ที่https://www.office.comและ / หรือใช้สคริปต์ตัวคลุมของฉันที่แสดงท้ายหน้า อย่างน้อยได้รับแจ้งข้อผิดพลาดใด ๆ โดยใช้การแจ้งเตือนบนเดสก์ทอป!
บางครั้งผู้พัฒนาอาจดูเหมือนไม่สามารถรับการเปลี่ยนแปลงหรืออัปโหลดอย่างถูกต้องทำให้ OneDrive ของคุณอยู่ในสถานะไม่ได้ซิงโครไนซ์ (บางส่วน) นอกจากนี้ยังสามารถเกิดขึ้นได้ว่ามันจะสร้างความขัดแย้งผสานกับตัวเองด้วยเหตุผลบางอย่างและเปลี่ยนชื่อไฟล์ของคุณในประเทศโดยผนวกชื่อโฮสต์ของคุณในวงเล็บและเลือกตัวเลข น่าเสียดายที่ไม่มีการแจ้งเตือนเกี่ยวกับข้อผิดพลาด แต่คุณสามารถดูรายการในล็อกไฟล์ของคุณ
หากสิ่งนี้เกิดขึ้นคุณสามารถลองซิงโครไนซ์ไฟล์ที่เกี่ยวข้องอีกครั้งโดยสัมผัสกับไฟล์หรือเปลี่ยนชื่อไฟล์หรือโฟลเดอร์ที่อยู่ในไฟล์นั้น
เคล็ดลับ:ดูเหมือนว่าห้องสมุดที่เพิ่งได้รับการแก้ไขมักจะมีปัญหาโดยเฉพาะอย่างยิ่งไฟล์ที่ถูกบันทึกไว้ในราก OneDrive โดยตรง อาจเป็นการดีกว่าถ้าคุณวางไฟล์ทั้งหมดในไดเรกทอรีย่อยแทนที่จะทิ้งไฟล์เหล่านั้นลงในโฟลเดอร์ OneDrive โดยตรง
แม้ว่ามันจะฟังดูโง่ แต่ฉันก็สังเกตเห็นว่ามันทำให้เกิดปัญหาน้อยกว่าในการอัปโหลดไฟล์ผ่านทางไคลเอนต์ OneDrive Web และรอจนกว่าพวกเขาจะได้รับการซิงโครไนซ์กลับไปที่โฟลเดอร์ท้องถิ่นของคุณ (ซึ่งอาจใช้เวลาหลายนาที) ในท้องถิ่น ไม่ว่าจะเป็นจริงหรือใช้งานได้โดยสมบูรณ์วัตถุประสงค์ของ OneDrive ขึ้นอยู่กับการตัดสินใจของคุณเอง ...
ดูไฟล์ readme ของโครงการสำหรับคำแนะนำการติดตั้งแบบสมบูรณ์ แต่นี่เป็นข้อมูลสรุปโดยย่อ:
ตรวจสอบให้แน่ใจว่าคุณไม่ได้ติดตั้งonedrived
(หรือonedrive-d
) เวอร์ชันอื่น
ติดตั้งแพคเกจการอ้างอิง:
sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
ดาวน์โหลดล่าสุดngrok
ไคลเอนต์สำหรับลินุกซ์จากเว็บไซต์อย่างเป็นทางการที่https://ngrok.com/download ngrok-client
แพคเกจจากอูบุนตูที่เก็บเก่าเกินไปและไม่ตอบสนองความต้องการ
คลายngrok-stable-linux-amd64.zip
ไฟล์เก็บถาวรที่ดาวน์โหลด มันมีเพียงหนึ่งเดียวngrok
ไบนารีซึ่งคุณควรใส่ในสถานที่ด้วยตัวคุณเช่นเข้า$PATH
การสมัคร ngrok อาจไม่จำเป็น/usr/local/bin/
ติดตั้งonedrived
แอปพลิเคชั่น Python3 จาก GitHub โดยใช้pip3
:
sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
เลือกกำหนดค่าตำแหน่งไฟล์บันทึกสำหรับonedrived
ที่คุณสามารถตรวจสอบปัญหาได้หากมีสิ่งใดที่ทำงานไม่ถูกต้องเช่น
onedrived-pref config set logfile_path ~/.config/onedrived/onedrived.log
หลังจากการติดตั้งสำเร็จคุณต้องกำหนดค่าบัญชีและไดรฟ์:
เพิ่มบัญชี OneDrive for Business ของคุณโดยใช้โหมดโต้ตอบโดยเรียกใช้:
onedrived-pref account add -b
วิซาร์ดการโต้ตอบจะขอให้คุณเปิดลิงก์ในเบราว์เซอร์ของคุณสองครั้งซึ่งคุณจะต้องอนุญาตแอปพลิเคชันด้วยบัญชี Microsoft Business ของคุณ
มันจะขอให้คุณวาง URL ที่คุณได้รับการเปลี่ยนเส้นทางไปหลังจากยืนยันการอนุญาตกลับเข้าไปในตัวช่วยสร้างการโต้ตอบ โปรดทำตามที่บอกและทำตามคำสั่งที่ให้ไว้
ตรวจสอบว่าได้เพิ่มบัญชีสำเร็จแล้วโดยตรวจสอบผลลัพธ์ของคำสั่งด้านล่าง ควรมีลักษณะคล้ายกันและแสดงรายการบัญชีที่คุณลงชื่อเข้าใช้ด้วย:
$ onedrived-pref account list
All OneDrive accounts associated with user "YOUR_UBUNTU_USERNAME":
# Account ID Owner Name Email Address Profile Type
--- ------------------------- ------------- -------------------- --------------
0 YOUR_PERSONAL_ACCOUNT_ID YOUR_NAME YOUR_BUSINESS_EMAIL Business
กำหนดค่าไดรฟ์ของคุณในโหมดคำสั่งแบบโต้ตอบโดยการเรียกใช้:
onedrived-pref drive set
คุณจะเห็นรายการของไดรฟ์ทั้งหมดของคุณและขอให้ป้อนหมายเลขแถวของไดรฟ์ที่คุณต้องการเพิ่มลงในการกำหนดค่าท้องถิ่นของคุณ
จากนั้นคุณต้องระบุไดเรกทอรีท้องถิ่นที่คุณต้องการใช้เป็นโฟลเดอร์รูทเพื่อซิงโครไนซ์กับไดรฟ์ของคุณ คุณก็สามารถตีและมันจะใช้ค่าเริ่มต้นEnter ~/OneDrive
หากไม่มีเส้นทางมันจะถูกสร้างขึ้น สิ่งเดียวกันสำหรับเส้นทางไปยังไฟล์ละเว้นที่คุณต้องการใช้คุณสามารถกดEnterและมันจะใช้ค่าเริ่มต้น~/.config/onedrived/ignore_v2.txt
และสร้างหากจำเป็น
ตรวจสอบผลลัพธ์ของคำสั่งด้านล่างเพื่อแสดงข้อมูลเกี่ยวกับไดรฟ์ที่มีและที่กำหนดค่าทั้งหมด ควรแสดงไดรฟ์ที่คุณเพิ่งตั้งค่าด้วยการตั้งค่าที่ถูกต้องภายใต้หัวข้อDrives that have been set up
:
onedrived-pref drive list
หลังจากกำหนดค่าไดรฟ์ของคุณแล้วคุณต้องลองและเริ่มonedrived
ภูต ฉันแนะนำให้เปิดมันในโหมดแก้ไขข้อบกพร่องก่อนในกรณีที่มีปัญหาใด ๆ ที่คุณจะพลาด สิ่งนี้จะเริ่มต้นonedrived
ในเบื้องหน้า:
onedrived start --debug
หากทุกอย่างเรียบร้อยและคำสั่งไม่ผิดพลาดและออกลองใส่ไฟล์บางไฟล์ในโฟลเดอร์ OneDrive ท้องถิ่นของคุณและดูว่ามันประสาน คุณควรจะสามารถยืนยันได้โดยไปที่แอปพลิเคชันเว็บ OneDrive ที่https://www.office.comและตรวจสอบว่าไฟล์ที่คุณเพิ่มในเครื่องนั้นปรากฏขึ้นที่นั่นหรือไม่
คุณสามารถออกจากonedrived
กระบวนการอีกครั้ง terminal ของคุณโดยการกด+CtrlC
หากต้องการเปิดใช้งานonedrived
ตามปกติในฐานะ daemon พื้นหลังให้รันด้วย:
onedrived start
คุณควรเพิ่มคำสั่งนี้ในแอปพลิเคชันเริ่มต้นของคุณเพื่อให้คำสั่งเริ่มต้นโดยอัตโนมัติทุกครั้งที่คุณลงชื่อเข้าใช้โปรดดูที่ฉันจะเริ่มแอปพลิเคชันโดยอัตโนมัติเมื่อเข้าสู่ระบบได้อย่างไร สำหรับการที่.
หากคุณต้องการได้รับการแจ้งเตือนทางเดสก์ท็อปเมื่อใดก็ตามที่onedrived
บันทึกข้อผิดพลาด (เช่นการซิงโครไนซ์ไฟล์ล้มเหลว) นี่คือสคริปต์ตัวตัดคำที่แยกวิเคราะห์ไฟล์บันทึกแบบเรียลไทม์และใช้การแจ้งเตือนส่งเพื่อแสดง
คุณสามารถเริ่มสคริปต์ตัวตัดคำโดยไม่มีอาร์กิวเมนต์ (หรือใส่ไว้ในแอปพลิเคชันเริ่มต้นอัตโนมัติ) แทนonedrived start
คำสั่ง
#!/bin/bash
LOGFILE=~/.config/onedrived/onedrived.log
ICON_START=weather-overcast
ICON_STOP=weather-few-clouds
ICON_ERROR=weather-severe-alert
onexit () {
onedrived stop
notify-send -i "$ICON_STOP" "OneDrive" "Wrapper stopped"
echo "onedrived-wrapper stopped"
}
trap onexit EXIT
onedrived stop
echo "---" >> "$LOGFILE"
onedrived start || {
echo "Failed to start onedrived!"
exit 1
}
notify-send -i "$ICON_START" "OneDrive" "Wrapper started"
echo "Monitoring onedrived.log for error messages..."
tail -n 1 -F --pid="$(pgrep -f "onedrived start")" "$LOGFILE" |
while read LINE ; do
echo "$LINE"
if MESSAGE="$(grep -Pio '(?<=ERROR: ).*' <<< "$LINE")" ; then
notify-send -i "$ICON_ERROR" "OneDrive Error" "$MESSAGE"
fi
done
rcloneรองรับ OneDrive for Business ดูบทความวิธีติดตั้ง OneDrive ใน Linux โดยใช้ Rclone (รองรับบัญชีธุรกิจและส่วนตัว) - บล็อกการจู่โจมของ Linuxสำหรับการใช้งาน
นี่คือตัวอย่างของฉันในการตั้งค่ารีโมตใหม่onedrive1
ด้วย rclone 1.48.0 (บน Fedora 30):
$ rclone config
2019/10/10 06:35:56 NOTICE: Config file ".config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> onedrive1
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
⋮
19 / Microsoft OneDrive
\ "onedrive"
⋮
Storage> 19
** See help for onedrive backend at: https://rclone.org/onedrive/ **
Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Choose a number from below, or type in an existing value
1 / OneDrive Personal or Business
\ "onedrive"
2 / Root Sharepoint site
\ "sharepoint"
3 / Type in driveID
\ "driveid"
4 / Type in SiteID
\ "siteid"
5 / Search a Sharepoint site
\ "search"
Your choice> 1
Found 2 drives, please select the one you want to use:
0: OneDrive - Example Inc (business) id=b!gFLg-RRe****-T9B****
1: OneDrive - Example Inc (business) id=b!gFLg-RRe****-T-H****
Chose drive to use:> 1
Found drive 'root' of type 'business', URL: https://example-my.sharepoint.com/personal/myname_example_com/Documents
Is that okay?
y) Yes
n) No
y/n> y
Current remotes:
Name Type
==== ====
onedrive1 onedrive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
URL ของไดรฟ์ 0 ลงท้ายด้วย/ElementinnerHTML
และไม่มีไฟล์ในกรณีของฉัน
แล้วติดบนไดเรกทอรีท้องถิ่นผ่านบรรทัดคำสั่งrclone เบราว์เซอร์หรือเว็บ GUI ตั้งแต่ v1.49