Linux'ta OneDrive İşletme / Office 365 Nasıl Eşitlenir?


24

Microsoft OneDrive İşletme / Office 365 Pro 1 TB bulut depolama alanı sunar, ancak ne yazık ki Linux'ta senkronize etmek için hiçbir zaman bir yöntem olmamıştır.


2
Ubuntu'ya Sormaya Hoş Geldiniz ! Biz bir soru ve cevap sitesiyiz, bir forum değil. Şu anda belirtilen soru bölümünde hem bir sorunuz hem de cevabınız var. Lütfen cevabı kaldırmak için yazınızı düzenleyin ve aşağıdaki cevap bölümünde yayınlayın (sayfanın altına yakın bir düğme olmalıdır). Teşekkürler!
Seth,

Yanıtlar:


7

Şu anda deneysel onedrive-d, Microsoft Sharepoint bağlantılarını kabul etmediği için yalnızca kişisel OneDrive hesaplarını senkronize edebilen açık kaynaklı bir programdır. İşte kişisel kullanım için ücretsiz olan Linux için GoodSync'i kullanarak OneDrive Business / Office 365'i senkronize etmenin bir yöntemi .

  1. Linux makinenize uygun sürümü kurun, örneğin:

    ./goodsync-linux-x86_64-release.run
    

    Tarafından cevap n hem GoodSync Bağlan kurulumu ve GsServer Web Arayüzü o.

  2. OneDrive'ı bir web tarayıcısında açın. sağ alt taraftaki "Klasik OneDrive'a Dön" ü seçin.
  3. Tarayıcınızdaki web adresi şimdi şöyle görünecek: https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspxve buna göre senkronize bağlantınızı alacak office365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents.
  4. Evinizdeki .goodsync alt klasöründe yeni bir dosya oluşturun:

    gedit ~/.goodsync/jobs.tix
    
  5. Dosyaya aşağıdaki kodu girin ve kaydedin:

    <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. Senkronizasyon işlemini başlatın:

    gsync sync "OneDrive_Sync"
    
  7. Bu adımda web tarayıcınız OneDrive / Office 365 sayfasını açar ve goodsync'in hesabınıza erişmesine izin vermek için yetkilendirmenizi ister. Kimlik bilgilerinizi girdikten sonra senkronizasyon başlayacaktır.

Sınırlamalar: Microsoft, 270 karakterden uzun olan URL İsteklerine izin vermez ve bu nedenle GoodSync, uzun yol adlarıyla dosyaları eşitleyemez.

Keyfini çıkarın!


3
Web tarayıcım 7. adımdaki yetkilendirme sayfasını açmıyor. Manuel olarak nasıl yapılır?
Pat-s,

3
Web tarayıcım da giriş yapmaya açık değil
Haha TTpro

2
Office365'deki dosya sistemi: /.../ Belgeler, New OneDrive V2 API ile değiştirildi. OneDrive senkronizasyon klasörünüze yeniden göz atmak için Gözat düğmesini tıklatın, çünkü Yeni OneDrive tarayıcı tabanlı kimlik doğrulaması gerektiriyor (OAuth2)
Ferroao

6

Ubuntu 18.04 ve üstü

Ubuntu 18.04 ve sonraki sürümlerinde varsayılan Ubuntu depolarında bir OneDrive istemcisi var. OneDrive, Microsoft'un bulut depolama sistemidir. Bu paket, OneDrive bulut depolama alanıyla senkronizasyon konusunda uzmanlaşmış komut satırı istemcisine sağlar.

Şununla yükleyin:

sudo apt install onedrive

İlk çalıştırmada sizden bir link ile kimlik doğrulaması yapmanızı ister. Doğrulama işleminden sonra systemctl --user enable onedriveve ardından deamon'u etkinleştirebilirsiniz systemctl --user start onedrive. Daha fazla açıklama man sayfasında bulunabilir man onedrive. Kurulumu çok kolaydır ve sadece beş dakika sürer.


4
Bu OneDrive İş için çalışmıyor
tricasse

1
@tricasse Office 365 Pro için çalışıyor
Mattia_98

2

Orijinal ve yaygın olarak kullanılan onedrivedaraç xybu tarafından hala OneDrive İş'i desteklemiyor, ancak yalnızca kişisel OneDrives'i destekliyor. Ancak, bu projenin GitHub'da derrix060 by Business istemcisi için bir şekilde çalışan (ancak hala buggy) bir uygulaması olan bir çatal var .

Uyarı: Bu yöntemi kullandığınızda, dosyaların her zaman https://www.office.com adresinde çevrimiçi olup olmadığını kontrol ederek dosyaların doğru senkronize edildiğini doğrulamanızı ve / veya bu sayfanın sonunda gösterilen sarmalayıcı komut dosyasını kullanmanızı şiddetle tavsiye ediyorum. en azından masaüstü bildirimlerini kullanarak herhangi bir hatadan haberdar olmak için!

Bazen onedrived bazı değişiklikleri toplayamıyor ya da doğru bir şekilde yükleyemiyor, OneDrive'ınızı (kısmen) senkronize olmayan bir durumda bırakıyor. Ayrıca, bazı nedenlerden dolayı kendisiyle birleştirme çatışmaları yaratır ve ana bilgisayar adınızı parantez içine ve isteğe bağlı olarak bir sayı ekleyerek dosyalarınızı yerel olarak yeniden adlandırır. Maalesef hatalarla ilgili herhangi bir bildirim yok, ancak girişleri log dosyanızda görebilirsiniz.

Bu durumda, ilgili dosyaları tekrar dokunarak, örneğin dokunarak veya yeniden adlandırdıklarını veya içinde bulundukları klasörleri yeniden senkronize etmeye çalışmasını sağlayabilirsiniz.

İpucu: Kurtarılan kitaplığın genellikle doğrudan OneDrive kök dizinine kaydedilmiş dosyalarla ilgili sorunları var gibi görünüyor. Tüm dosyaları doğrudan OneDrive klasörüne dökmek yerine, alt dizinlere koymak daha iyidir.

Aptal gibi görünse de, OneDrive Web istemcisi aracılığıyla dosya yüklemek için daha az sorun yarattığı ve bunları oluşturmaktan, kopyalamaktan / taşımaktan daha sonra birkaç dakika sürebilen yerel klasörünüzle senkronize edilinceye kadar beklediklerini de fark ettim. yerel olarak. Bunun pratik ya da tamamen geçersiz olup olmadığı OneDrive'ın amacına göre karar veriyor.

Kurulum talimatlarının tamamı için projenin benioku dosyasına bakın, ancak kısa bir özeti:

Kurulum

  1. Yüklü başka bir sürümünün onedrived(veya onedrive-d) olmadığından emin olun .

  2. Bağımlılık paketlerini kurun:

    sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
    
  3. ngrokLinux için en yeni istemciyi https://ngrok.com/download adresindeki resmi web sitesinden indirin . ngrok-clientUbuntu depolarından paketi çok eskidir ve gereksinimlerini karşılamıyor.
    İndirilen ngrok-stable-linux-amd64.ziparşivin paketini açın . İçinde ngrokbulunduğunuz yere $PATH, örneğin içine yerleştirmeniz gereken tek bir ikili dosya içerir /usr/local/bin/.
    Ngrok'a kaydolmak muhtemelen gerekli değildir.

  4. onedrivedPython3 uygulamasını GitHub'dan aşağıdakileri kullanarak kurun pip3:

    sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
    
  5. İsteğe bağlı olarak onedrived, herhangi bir şeyin düzgün çalışmaması durumunda sorunları kontrol edebileceğiniz bir günlük dosyası konumu yapılandırın , örneğin:

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

Hesap kurulumu ve sürücü yapılandırması

Yükleme başarılı olduktan sonra, hesabınızı ve sürücülerinizi yapılandırmanız gerekir:

  1. OneDrive İş hesabınızı aşağıdakileri yaparak etkileşimli modu kullanarak ekleyin:

    onedrived-pref account add -b
    

    Etkileşimli sihirbaz, tarayıcınızda, uygulamayı Microsoft Business hesabınızla yetkilendirmeniz gereken bir bağlantıyı iki kez açmanızı ister.
    Yeniden yönlendirildiğiniz URL'yi, yetkilendirmeyi tekrar onay sihirbazına onayladıktan sonra yapıştırmanızı isteyecektir. Lütfen söyleneni yapın ve komutun size verdiği talimatı izleyin.

  2. Aşağıdaki komutun çıktısını kontrol ederek hesabın başarıyla eklendiğini doğrulayın. Benzer görünmeli ve giriş yapmış olduğunuz hesabı listelemelidir:

    $ 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. Sürücülerinizi aşağıdakileri çalıştırarak etkileşimli komut modunda yapılandırın:

    onedrived-pref drive set
    

    Tüm sürücülerinizin bir listesini görecek ve yerel yapılandırmanıza eklemek istediğiniz sürücünün satır numarasını girmeniz istenecektir.
    Daha sonra sürücünüzle senkronize etmek için kök klasör olarak kullanmak istediğiniz yerel bir dizin belirtmeniz gerekir. Sadece vurabilir Enterve varsayılanı kullanır ~/OneDrive. Yol yoksa, oluşturulacaktır. Kullanmak istediğiniz yoksayma dosyasına giden yol için aynı şey, sadece vurabilir Enterve varsayılanı kullanır ~/.config/onedrived/ignore_v2.txtve gerekirse oluşturur.

  4. Tüm mevcut ve yapılandırılmış sürücüler hakkındaki bilgileri görüntülemek için aşağıdaki komutun çıktısını kontrol edin. Az önce kurduğunuz sürücüyü başlığın altında doğru ayarlarla göstermelidir Drives that have been set up:

    onedrived-pref drive list
    

Daemon'un başlatılması

Artık sürücünüz konfigüre edildiğinden, onedrivedarka planını başlatmayı denemelisiniz . Kaçırmanız gereken herhangi bir sorun olması durumunda, öncelikle hata ayıklama modunda başlatmanızı öneririm. Bu onedrivedön planda başlayacak :

onedrived start --debug

Her şey yolundaysa ve komut çökmezse ve çıkmazsa, bazı dosyaları yerel OneDrive klasörüne yerleştirmeyi deneyin ve senkronize edilip edilmediğine bakın. Muhtemelen, https://www.office.com adresindeki OneDrive web uygulamasını ziyaret edip yerel olarak eklediğiniz dosyaların orada görünüp görünmediğini kontrol ederek doğrulamanız gerekir .

+ onedrivedTuşlarına basarak işleminizden tekrar terminalinizden çıkabilirsiniz .CtrlC

onedrivedNormal olarak başlatmak için arka plan arka plan programı olarak çalıştırın:

onedrived start

Muhtemelen bu komutu Başlangıç ​​Uygulamalarınıza eklemelisiniz, böylece her oturum açtığınızda otomatik olarak başlayacaktır . Lütfen başvuruları oturum açtıklarında otomatik olarak nasıl başlatabilirim? bunun için.

Hata bildirimleri için sarmalayıcı

Bir onedrivedhata günlüğe kaydettiğinde (örneğin başarısız dosya senkronizasyonu) masaüstü bildirimleri almak istiyorsanız , günlük dosyasını gerçek zamanlı olarak ayrıştıran ve size göstermek için notify-send kullanan bir sarmalayıcı komut dosyası aşağıdadır.

Komut dosyası yerine sarmalayıcı komut dosyasını bağımsız değişkenler olmadan başlatabilir (veya otomatik başlatma uygulamalarınıza koyabilirsiniz) 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

Hala "Yetkilendirilme tarihi geçemedi: interaction_required." Mesajını alıyorum. ODfB hesabını doğrulamak için ikinci linke girdikten sonra. Bunun neden olabileceği hakkında bir fikrin var mı?
Jimakos

@Jimakos Üzgünüm, bu mesajla hiç karşılaşmadım. Ne yazık ki hiçbir fikrim yok.
Byte Commander

1

rclone , OneDrive İş'i destekler. Bir makaleye bakın Rclone Kullanarak Linux'ta OneDrive Bağlama (Ticari ve Kişisel Hesapları Destekler) - Kullanım için Linux Ayaklanma Blogu .

İşte onedrive1rclone 1.48.0 ile yeni bir uzaktan kumanda kurmak için örneğim (Fedora 30'da):

$ 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

0 sürücüsünün URL'si biter /ElementinnerHTMLve benim durumumda dosyalar içermez.

Sonra yerel bir dizine v1.49'dan beri komut satırı, rclone-browser veya web GUI ile bağlayın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.