Bagaimana cara menyinkronkan OneDrive Business / Office 365 di Linux?


24

Microsoft OneDrive Business / Office 365 Pro menawarkan 1 TB penyimpanan cloud tetapi sayangnya tidak pernah ada metode untuk menyinkronkannya di Linux.


2
Selamat Datang di Tanya Ubuntu ! Kami adalah situs tanya jawab, bukan forum. Saat ini Anda memiliki pertanyaan dan jawaban di bagian pertanyaan yang ditunjuk. Harap edit posting Anda untuk menghapus jawaban dan posting di bagian jawaban di bawah ini (harus ada tombol di dekat bagian bawah halaman). Terima kasih!
Seth

Jawaban:


7

Saat ini onedrive-d eksperimental adalah program sumber terbuka yang hanya dapat menyinkronkan akun OneDrive pribadi karena tidak menerima tautan Microsoft Sharepoint. Berikut adalah metode untuk menyinkronkan OneDrive Business / Office 365 menggunakan GoodSync untuk Linux , yang gratis untuk penggunaan pribadi.

  1. Instal versi yang sesuai untuk mesin Linux Anda mis:

    ./goodsync-linux-x86_64-release.run
    

    Jawab oleh n untuk pengaturan GoodSync Connect dan GsServer Web UI.

  2. Buka OneDrive di browser web. pilih "Kembali ke Classic OneDrive" di sisi kanan bawah.
  3. Alamat web di browser Anda sekarang akan terlihat seperti: https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspxdan berdasarkan itu dapatkan tautan sinkronisasi Anda nantinya office365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents.
  4. Buat file baru di subfolder .goodsync di rumah Anda:

    gedit ~/.goodsync/jobs.tix
    
  5. Masukkan kode berikut dalam file dan simpan:

    <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>
    
  6. Mulai proses sinkronisasi:

    gsync sync "OneDrive_Sync"
    
  7. Pada langkah ini Browser web Anda akan membuka halaman OneDrive / Office 365 dan meminta otorisasi Anda untuk memungkinkan goodsync mengakses akun Anda. Setelah memasukkan kredensial Anda, sinkronisasi akan dimulai.

Keterbatasan: Microsoft tidak mengizinkan Permintaan URL dengan panjang lebih dari 270 karakter dan karenanya GoodSync TIDAK BISA menyinkronkan file dengan nama path panjang.

Nikmati!


3
Browser web saya tidak membuka halaman otorisasi pada langkah 7. Adakah yang tahu bagaimana melakukannya secara manual?
pat-s

3
Peramban web saya tidak terbuka untuk masuk juga
Haha TTpro

2
Sistem file di office365: /.../ Dokumen telah digantikan oleh API OneDrive V2 Baru. Klik tombol Browse untuk Re-Browse ke folder sinkronisasi OneDrive Anda, karena New OneDrive memerlukan otentikasi berbasis browser (OAuth2)
Ferroao

6

Ubuntu 18.04 dan yang lebih baru

Ada klien OneDrive di repositori default Ubuntu di Ubuntu 18.04 dan yang lebih baru. OneDrive adalah sistem penyimpanan cloud dari Microsoft. Paket ini menyediakan klien baris perintah yang berspesialisasi dalam menyinkronkan dengan penyimpanan cloud OneDrive.

Instal dengan:

sudo apt install onedrive

Saat pertama kali dijalankan, ia meminta Anda untuk mengautentikasi dengan tautan. Setelah otentikasi, Anda dapat mengaktifkan deamon dengan systemctl --user enable onedrivedan kemudian systemctl --user start onedrive. Penjelasan lebih lanjut dapat ditemukan di halaman manual man onedrive. Pengaturannya sangat mudah, dan hanya membutuhkan waktu sekitar lima menit.


4
Ini tidak berfungsi untuk OneDrive for Business
tricasse

1
@tricasse Berfungsi untuk Office 365 Pro
Mattia_98

2

Meskipun alat asli dan yang umum digunakan onedrivedoleh xybu masih tidak mendukung OneDrive for Business, tetapi hanya OneDrives pribadi. namun, ada fork proyek ini di GitHub oleh derrix060 yang entah bagaimana bisa berfungsi (tetapi masih bermasalah) untuk klien Bisnis.

Peringatan: Ketika Anda menggunakan metode ini, saya sangat menyarankan untuk selalu memverifikasi bahwa file-file tersebut disinkronkan dengan benar dengan memeriksa secara online di https://www.office.com , dan / atau menggunakan skrip pembungkus saya yang diperlihatkan di akhir halaman ini. untuk setidaknya mengetahui kesalahan apa pun menggunakan notifikasi desktop!

Terkadang onedrived tampaknya gagal mengambil beberapa perubahan atau mengunggahnya dengan benar, membuat OneDrive Anda dalam keadaan (sebagian) tidak tersinkronisasi. Itu juga dapat terjadi bahwa itu menghasilkan menggabungkan konflik dengan dirinya sendiri untuk beberapa alasan dan mengganti nama file Anda secara lokal dengan menambahkan nama host Anda dalam tanda kurung dan opsional nomor. Sayangnya tidak ada pemberitahuan tentang kesalahan, tetapi Anda dapat melihat entri di logfile Anda.

Jika ini terjadi, Anda dapat membuatnya mencoba menyinkronkan file masing-masing lagi dengan misalnya menyentuhnya atau mengganti nama mereka atau folder tempat mereka berada.

Tip: Sepertinya pustaka onedrived sering memiliki masalah terutama dengan file yang disimpan langsung di root OneDrive. Mungkin lebih baik untuk meletakkan semua file di subdirektori daripada membuangnya langsung ke folder OneDrive.

Meskipun kedengarannya bodoh, saya juga memperhatikan bahwa tampaknya lebih sedikit masalah untuk mengunggah file melalui klien Web OneDrive dan menunggu sampai mereka disinkronkan kembali ke folder lokal Anda (yang dapat memakan waktu beberapa menit) daripada membuat atau menyalin / memindahkannya. secara lokal. Apakah ini praktis atau benar-benar mengosongkan tujuan OneDrive tergantung pada keputusan Anda sendiri ...

Lihat file readme proyek untuk instruksi instalasi lengkap, tapi di sini adalah ringkasan singkat:

Instalasi

  1. Pastikan Anda tidak menginstal versi lain onedrived(atau onedrive-d).

  2. Instal paket ketergantungan:

    sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
    
  3. Unduh ngrokklien terbaru untuk Linux dari situs web resmi di https://ngrok.com/download . The ngrok-clientpaket dari repositori Ubuntu terlalu tua dan tidak memenuhi persyaratan.
    Buka paket ngrok-stable-linux-amd64.ziparsip yang diunduh . Ini berisi ngrokbiner tunggal , yang harus Anda tempatkan di lokasi Anda $PATH, misalnya ke /usr/local/bin/.
    Mendaftar untuk ngrok mungkin tidak perlu.

  4. Instal onedrivedaplikasi Python3 dari GitHub menggunakan pip3:

    sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
    
  5. Secara opsional konfigurasikan lokasi logfile untuk onedrived, di mana Anda dapat memeriksa masalah jika ada yang tidak berfungsi dengan benar, misalnya:

    onedrived-pref config set logfile_path ~/.config/onedrived/onedrived.log
    

Pengaturan akun dan konfigurasi drive

Setelah instalasi berhasil, Anda harus mengonfigurasi akun dan drive Anda:

  1. Tambahkan akun OneDrive for Business Anda menggunakan mode interaktif dengan menjalankan:

    onedrived-pref account add -b
    

    Wizard interaktif akan meminta Anda dua kali untuk membuka tautan di browser Anda, tempat Anda harus mengotorisasi aplikasi dengan akun Microsoft Business Anda.
    Ini akan meminta Anda untuk menempelkan URL yang Anda arahkan ke setelah mengkonfirmasi otorisasi kembali ke wizard interaktif. Silakan lakukan seperti yang diperintahkan dan ikuti instruksi yang diberikan perintah kepada Anda.

  2. Verifikasi akun berhasil ditambahkan dengan memeriksa output dari perintah di bawah ini. Seharusnya terlihat serupa dan daftarkan akun tempat Anda masuk:

    $ 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
    
  3. Konfigurasikan drive Anda dalam mode perintah interaktif dengan menjalankan:

    onedrived-pref drive set
    

    Anda akan melihat daftar semua drive Anda dan diminta untuk memasukkan nomor baris drive yang ingin Anda tambahkan ke konfigurasi lokal Anda.
    Anda kemudian harus menentukan direktori lokal yang ingin Anda gunakan sebagai folder root untuk menyinkronkan dengan drive Anda. Anda bisa menekan Enterdan itu akan menggunakan default ~/OneDrive. Jika jalan tidak ada, itu akan dibuat. Hal yang sama untuk jalur ke file abaikan yang ingin Anda gunakan, Anda bisa menekan Enterdan itu akan menggunakan default ~/.config/onedrived/ignore_v2.txtdan membuatnya, jika perlu.

  4. Periksa output dari perintah di bawah ini untuk menampilkan informasi tentang semua drive yang tersedia dan dikonfigurasi. Seharusnya menunjukkan drive yang baru saja Anda atur dengan pengaturan yang benar di bawah judul Drives that have been set up:

    onedrived-pref drive list
    

Meluncurkan daemon

Sekarang drive Anda sudah dikonfigurasi, Anda perlu mencoba dan memulai onedriveddaemon. Saya sarankan untuk meluncurkannya dalam mode debug terlebih dahulu, jika ada masalah yang Anda akan lewatkan. Ini akan mulai onedriveddi latar depan:

onedrived start --debug

Jika semuanya baik-baik saja dan perintahnya tidak macet dan keluar, coba letakkan beberapa file di folder OneDrive lokal Anda dan lihat apakah itu disinkronkan. Anda mungkin harus dapat memverifikasi bahwa dengan mengunjungi aplikasi web OneDrive di https://www.office.com dan memeriksa apakah file yang Anda tambahkan secara lokal muncul di sana.

Anda dapat keluar dari onedrivedproses di terminal lagi dengan menekan Ctrl+ C.

Untuk meluncurkan secara onedrivednormal, sebagai daemon latar belakang, jalankan dengan:

onedrived start

Anda mungkin harus menambahkan perintah ini ke Aplikasi Startup Anda, sehingga perintah ini mulai otomatis setiap kali Anda masuk. Lihat Bagaimana cara memulai aplikasi secara otomatis saat login? untuk itu.

Wrapper untuk pemberitahuan kesalahan

Jika Anda ingin mendapatkan pemberitahuan desktop setiap kali onedrivedmencatat kesalahan (mis. Sinkronisasi file gagal), berikut ini adalah skrip wrapper yang mem-parsing file log secara waktu nyata dan menggunakan notify-send untuk menampilkannya kepada Anda.

Anda dapat memulai skrip wrapper tanpa argumen (atau memasukkannya ke aplikasi auto-start Anda) alih-alih onedrived startperintah.

#!/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

Saya masih mendapatkan pesan "Gagal mengotorisasi onedrived: interaksi_required." setelah saya memasukkan tautan kedua untuk mengautentikasi akun ODfB. Adakah ide mengapa ini bisa terjadi?
Jimakos

@ Jimakos Maaf, saya tidak pernah menemukan pesan itu. Sayangnya tidak ada ide.
Byte Commander

1

rclone mendukung OneDrive for Business. Lihat artikel Cara Memasang OneDrive Di Linux Menggunakan Rclone (Mendukung Akun Bisnis Dan Pribadi) - Blog Pemberontakan Linux untuk penggunaan.

Ini adalah contoh saya untuk mengatur remote baru onedrive1dengan rclone 1.48.0 (pada 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 drive 0 diakhiri dengan /ElementinnerHTMLdan tidak berisi file dalam kasus saya.

Kemudian pasang di direktori lokal melalui baris perintah, rclone-browser atau web GUI sejak v1.49 .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.