Làm cách nào để đồng bộ hóa OneDrive Business / Office 365 trên Linux?


24

Microsoft OneDrive Business / Office 365 Pro cung cấp 1 TB dung lượng lưu trữ đám mây nhưng thật không may, chưa bao giờ có một phương pháp để đồng bộ hóa nó trên Linux.


2
Chào mừng bạn đến hỏi Ubuntu ! Chúng tôi là một trang web câu hỏi và trả lời, không phải là một diễn đàn. Hiện tại bạn có cả câu hỏi và câu trả lời trong phần câu hỏi được chỉ định. Vui lòng chỉnh sửa bài đăng của bạn để xóa câu trả lời và đăng nó trong phần câu trả lời bên dưới (cần có một nút ở gần cuối trang). Cảm ơn!
Seth

Câu trả lời:


7

Hiện tại, onedrive-d thử nghiệm là một chương trình nguồn mở chỉ có thể đồng bộ hóa các tài khoản OneDrive cá nhân vì nó không chấp nhận các liên kết Microsoft Sharepoint. Đây là một phương pháp để đồng bộ hóa OneDrive Business / Office 365 bằng GoodSync cho Linux , miễn phí cho sử dụng cá nhân.

  1. Cài đặt phiên bản phù hợp cho máy Linux của bạn, vd:

    ./goodsync-linux-x86_64-release.run
    

    Trả lời bằng n o cho cả thiết lập GoodSync Connect và GsServer Web UI.

  2. Mở OneDrive trong trình duyệt web. chọn "Quay lại Classic OneDrive" ở phía dưới bên phải.
  3. Các địa chỉ web trong trình duyệt của bạn bây giờ sẽ giống như sau: https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspxvà dựa trên đó có được bạn liên kết đồng bộ sẽ được office365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents.
  4. Tạo một tệp mới trong thư mục con .goodsync trong nhà của bạn:

    gedit ~/.goodsync/jobs.tix
    
  5. Nhập mã sau vào tệp và lưu nó:

    <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. Bắt đầu quá trình đồng bộ hóa:

    gsync sync "OneDrive_Sync"
    
  7. Ở bước này, Trình duyệt web của bạn sẽ mở trang OneDrive / Office 365 và yêu cầu ủy quyền của bạn để cho phép hàng hóa được truy cập vào tài khoản của bạn. Sau khi nhập thông tin đồng bộ của bạn sẽ bắt đầu.

Hạn chế: Microsoft không cho phép các Yêu cầu URL có độ dài hơn 270 ký tự và vì vậy GoodSync KHÔNG thể đồng bộ hóa các tệp với tên đường dẫn dài.

Thưởng thức!


3
Trình duyệt web của tôi không mở trang ủy quyền ở bước 7. Bạn có biết làm thế nào để thực hiện thủ công không?
pat-s

3
Trình duyệt web của tôi không mở để đăng nhập
Haha TTpro

2
Hệ thống tệp tại office365: /.../ Tài liệu đã được thay thế bằng API OneDrive V2 mới. Bấm vào nút Duyệt để duyệt lại vào thư mục đồng bộ OneDrive của bạn, vì OneDrive mới yêu cầu xác thực dựa trên trình duyệt (OAuth2)
Ferroao

6

Ubuntu 18.04 trở lên

Có một ứng dụng khách OneDrive trong kho lưu trữ Ubuntu mặc định trong Ubuntu 18.04 trở lên. OneDrive là hệ thống lưu trữ đám mây của Microsoft. Gói này cung cấp ứng dụng khách dòng lệnh chuyên đồng bộ hóa với lưu trữ đám mây OneDrive.

Cài đặt nó với:

sudo apt install onedrive

Ở lần chạy đầu tiên, nó yêu cầu bạn xác thực bằng một liên kết. Sau khi xác thực, bạn có thể kích hoạt deamon với systemctl --user enable onedrivevà sau đó systemctl --user start onedrive. Giải thích thêm có thể được tìm thấy trong trang web man onedrive. Nó rất dễ cài đặt và chỉ mất khoảng năm phút.


4
Điều này không hoạt động cho OneDrive for Business
tricasse

1
@tricasse Nó hoạt động cho Office 365 Pro
Mattia_98

2

Mặc dù onedrivedcông cụ ban đầu và thường được sử dụng bởi xybu vẫn không hỗ trợ OneDrive for Business mà chỉ hỗ trợ OneDrive cá nhân. tuy nhiên, có một nhánh của dự án này trên GitHub bởi derrix060 có triển khai hoạt động (nhưng vẫn có lỗi) cho khách hàng Doanh nghiệp.

Cảnh báo: Khi bạn sử dụng phương pháp này, tôi khuyên bạn nên luôn xác minh rằng các tệp đã được đồng bộ hóa chính xác bằng cách kiểm tra chúng trực tuyến tại https://www.office.com và / hoặc sử dụng tập lệnh trình bao bọc của tôi được hiển thị ở cuối trang này để ít nhất được thông báo về bất kỳ lỗi nào bằng cách sử dụng thông báo trên màn hình!

Đôi khi, onedrived dường như không nhận được một số thay đổi hoặc tải chúng lên một cách chính xác, khiến OneDrive của bạn ở trạng thái không đồng bộ (một phần). Nó cũng có thể xảy ra rằng nó tạo ra xung đột hợp nhất với chính nó vì một số lý do và đổi tên các tệp của bạn cục bộ bằng cách nối thêm tên máy chủ của bạn trong ngoặc đơn và tùy chọn một số. Thật không may, không có thông báo về lỗi, nhưng bạn có thể thấy các mục trong logfile của bạn.

Nếu điều này xảy ra, bạn có thể làm cho nó cố gắng đồng bộ hóa các tệp tương ứng một lần nữa bằng cách chạm vào chúng hoặc đổi tên chúng hoặc thư mục mà chúng đang ở.

Mẹo: Có vẻ như thư viện bị lỗi thường có vấn đề, đặc biệt là với các tệp được lưu trực tiếp trong thư mục gốc OneDrive. Có lẽ tốt hơn là đặt tất cả các tệp trong thư mục con thay vì bỏ chúng trực tiếp vào thư mục OneDrive.

Mặc dù nghe có vẻ ngu ngốc, tôi cũng nhận thấy rằng dường như gây ra ít sự cố hơn khi tải tệp qua ứng dụng khách OneDrive Web và đợi cho đến khi chúng được đồng bộ hóa trở lại thư mục cục bộ của bạn (có thể mất vài phút) so với việc tạo hoặc sao chép / di chuyển chúng tại địa phương Cho dù điều này là thực tế hay hoàn toàn không có mục đích của OneDrive là tùy thuộc vào quyết định của bạn ...

Xem tệp readme của dự án để biết hướng dẫn cài đặt đầy đủ, nhưng đây là một bản tóm tắt ngắn:

Cài đặt

  1. Hãy chắc chắn rằng bạn không có phiên bản onedrived(hoặc onedrive-d) nào khác được cài đặt.

  2. Cài đặt các gói phụ thuộc:

    sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
    
  3. Tải xuống ngrokứng dụng khách mới nhất cho Linux từ trang web chính thức tại https://ngrok.com/d Download . Các ngrok-clientgói từ kho của Ubuntu là quá cũ và không đáp ứng được yêu cầu này.
    Giải nén ngrok-stable-linux-amd64.ziptệp lưu trữ đã tải xuống . Nó chứa một ngroknhị phân duy nhất , mà bạn nên đặt ở một vị trí trên $PATH, ví dụ như vào /usr/local/bin/.
    Đăng ký để ngrok có lẽ là không cần thiết.

  4. Cài đặt onedrivedứng dụng Python3 từ GitHub bằng cách sử dụng pip3:

    sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
    
  5. Tùy chọn cấu hình vị trí logfile cho onedrived, nơi bạn có thể kiểm tra sự cố nếu có bất cứ điều gì không hoạt động chính xác, ví dụ:

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

Thiết lập tài khoản và cấu hình ổ đĩa

Sau khi cài đặt thành công, bạn phải định cấu hình tài khoản và ổ đĩa của mình:

  1. Thêm tài khoản OneDrive for Business của bạn bằng chế độ tương tác bằng cách chạy:

    onedrived-pref account add -b
    

    Trình hướng dẫn tương tác sẽ yêu cầu bạn hai lần để mở một liên kết trong trình duyệt của bạn, nơi bạn sẽ phải ủy quyền cho ứng dụng bằng tài khoản Microsoft Business của mình.
    Nó sẽ yêu cầu bạn dán URL mà bạn được chuyển hướng đến sau khi xác nhận ủy quyền trở lại vào trình hướng dẫn tương tác. Hãy làm như đã nói và làm theo hướng dẫn mà lệnh cung cấp cho bạn.

  2. Xác minh tài khoản đã được thêm thành công bằng cách kiểm tra đầu ra của lệnh bên dưới. Nó sẽ trông tương tự và liệt kê tài khoản bạn đã đăng nhập:

    $ 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. Định cấu hình ổ đĩa của bạn ở chế độ lệnh tương tác bằng cách chạy:

    onedrived-pref drive set
    

    Bạn sẽ thấy một danh sách tất cả các ổ đĩa của bạn và được yêu cầu nhập số hàng của ổ đĩa bạn muốn thêm vào cấu hình cục bộ của mình.
    Sau đó, bạn phải chỉ định một thư mục cục bộ mà bạn muốn sử dụng làm thư mục gốc để đồng bộ hóa với ổ đĩa của bạn. Bạn chỉ có thể nhấn Entervà nó sẽ sử dụng mặc định ~/OneDrive. Nếu đường dẫn không tồn tại, nó sẽ được tạo. Điều tương tự đối với đường dẫn đến tệp bỏ qua bạn muốn sử dụng, bạn chỉ cần nhấn Entervà nó sẽ sử dụng mặc định ~/.config/onedrived/ignore_v2.txtvà tạo nó, nếu cần.

  4. Kiểm tra đầu ra của lệnh bên dưới để hiển thị thông tin về tất cả các ổ đĩa có sẵn và được cấu hình. Nó sẽ hiển thị ổ đĩa bạn vừa thiết lập với các cài đặt chính xác dưới tiêu đề Drives that have been set up:

    onedrived-pref drive list
    

Ra mắt daemon

Bây giờ ổ đĩa của bạn đã được cấu hình, bạn cần thử và khởi động onedrivedtrình nền. Tôi khuyên bạn nên khởi chạy nó trong chế độ gỡ lỗi trước, trong trường hợp có bất kỳ vấn đề nào bạn sẽ bỏ lỡ. Điều này sẽ bắt đầu onedrivedở tiền cảnh:

onedrived start --debug

Nếu mọi thứ đều ổn và lệnh không bị lỗi và thoát, hãy thử đặt một số tệp vào thư mục OneDrive cục bộ của bạn và xem liệu nó có đồng bộ hóa không. Bạn có thể có thể xác minh rằng bằng cách truy cập ứng dụng web OneDrive tại https://www.office.com và kiểm tra xem các tệp bạn đã thêm cục bộ có xuất hiện ở đó không.

Bạn có thể thoát khỏi onedrived quy trình trong thiết bị đầu cuối của mình một lần nữa bằng cách nhấn Ctrl+ C.

Để khởi chạy onedrivedbình thường, dưới dạng nền daemon, hãy chạy nó với:

onedrived start

Bạn có thể nên thêm lệnh này vào Ứng dụng khởi động để nó tự động khởi động mỗi khi bạn đăng nhập. Vui lòng tham khảo Làm thế nào để tôi khởi động ứng dụng tự động khi đăng nhập? cho điều đó

Wrapper cho thông báo lỗi

Nếu bạn muốn nhận thông báo trên màn hình bất cứ khi nào onedrived ghi lại lỗi (ví dụ: đồng bộ hóa tệp không thành công), đây là tập lệnh trình bao phân tích tệp nhật ký trong thời gian thực và sử dụng thông báo gửi để hiển thị chúng cho bạn.

Bạn có thể bắt đầu tập lệnh bao bọc mà không cần đối số (hoặc đặt nó trong các ứng dụng tự động khởi động) thay vì onedrived startlệnh.

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

Tôi vẫn nhận được thông báo "Không thể ủy quyền cho onedrived: tương tác được yêu cầu." sau khi tôi nhập liên kết thứ hai để xác thực tài khoản ODfB. Bất kỳ ý tưởng tại sao điều này có thể xảy ra?
Jimakos

@Jimakos Xin lỗi, tôi chưa bao giờ gặp phải tin nhắn đó. Không có ý tưởng không may.
Chỉ huy Byte

1

rclone hỗ trợ OneDrive for Business. Xem bài viết Cách gắn OneDrive trong Linux bằng Rclone (Hỗ trợ tài khoản cá nhân và doanh nghiệp) - Blog khởi nghĩa Linux để sử dụng.

Dưới đây là ví dụ của tôi để thiết lập một điều khiển từ xa mới onedrive1với rclone 1.48.0 (trên 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 của ổ đĩa 0 kết thúc bằng /ElementinnerHTMLvà không chứa tệp trong trường hợp của tôi.

Sau đó gắn kết nó vào một thư mục cục bộ thông qua dòng lệnh, rclone-browser hoặc web GUI kể từ v1.49 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.