Μετάβαση στο περιεχόμενο

Μεταφορά αρχείων από υπηρεσίες Cloud

Η υποδομή υποστηρίζει τη δυνατότητα μεταφοράς δεδομένων από και προς υπηρεσίες αποθήκευσης νέφους τρίτων, όπως Google Drive, με το εργαλείο rclone.

Το rclone λειτουργεί σε δύο βήματα: (α) ρύθμιση και (β) χρήση. Παρακάτω θα βρείτε συγκεκριμένες οδηγίες για ορισμένες υπηρεσίες αποθήκευσης νέφους.

  • Ενεργοποίηση rclone
$ module load gcc/10.2.0 rclone

Ρύθμιση

Google Drive

Με τα παρακάτω βήματα θα δώσουμε, μέσω της rclone, στον λογαριασμό μας στο login κόμβο δικαιώματα πρόσβασης σε ένα drive στο Google Drive.

Η ρύθμιση γίνεται σε διαδραστικό περιβάλλον shell με την εντολή:

$ rclone config

Στο αρχικό μενού επιλέγουμε n, για νέο remote. Στη συνέχεια συμπληρώνουμε τα υπόλοιπα πεδία ως εξής:

Πεδίο Απάντηση
name> Ένα όνομα για το drive που θα χρησιμοποιούμε όταν μεταφέρουμε αρχεία (π.χ. my-team-project-drive)
Storage> drive
client_id> κενό
client_secret> κενό
scope> drive
root_folder_id> Χρειάζεται μόνο όταν θέλουμε να διαβάζουμε και να γράφουμε σε συγκεκριμένο φάκελο του drive και όχι σε όλο το drive. Αλλιώς αφήνουμε κενό.
service_account_file> κενό
Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n>
κενό για χρήση default
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working
on a remote or headless machine
y) Yes (default)
n) No
y/n> N
N

Στο στάδιο αυτό πρέπει να ρυθμίσουμε την πρόσβαση του χρήστη μας. Στο τερματικό θα εμφανιστεί ένα link όπως το παρακάτω:

Please go to the following link: https://accounts.google.com/o/oauth2/
auth?access_type=offline&client_id=...

Σε έναν browser ακολουθούμε το link όπου θα ζητηθεί να κάνουμε login με το λογαριασμό στον οποίο θέλουμε να δώσουμε πρόσβαση. Στη συνέχεια στον browser θα εμφανιστεί ένας κωδικός επαλήθευσης τον οποίο αντιγράφουμε στο τερματικό στο πεδίο Enter verification code>.

Στο Configure this as a team drive επιλέγουμε y:

Configure this as a team drive?
y) Yes
n) No (default)
y/n> y

Επιλογή team drive

Εάν δεν υπάρχουν κοινόχρηστα drives στο Google Drive μας ή αν επιλέξουμε n, το rclone θα επιλέξει το προσωπικό μας drive. Εάν θέλουμε να χρησιμοποιήσουμε ένα κοινόχρηστο drive, ελέγχουμε προηγουμένως ότι φαίνεται στα Κοινά Drive του Google Drive.

Τα drives που φαίνονται στο terminal είναι αυτά που φαίνονται και στο Google Drive

Στο σημείο αυτό, τα κοινά drives του Google Drive θα εμφανιστούν στο terminal και θα πρέπει να επιλεγεί ένα από αυτά. Επιλέγουμε το επιθυμητό drive (π.χ. 2 για my-team-project-drive):

Fetching team drive list...
Choose a number from below, or type in your own value
 1 / my-other-team-project-drive
   \ "XXXXXXXX"
 2 / my-team-project-drive
   \ "YYYYYYYY"
Enter a Team Drive ID> 2

Τέλος, επιβεβαιώνουμε τις επιλογές μας με y και επιλέγουμε q για έξοδο από το interactive shell. Το rclone έχει ρυθμιστεί και μπορούμε να το χρησιμοποιήσουμε.

Αρχείο ρυθμίσεων rclone

Στο αρχείο ~/.config/rclone/rclone.conf περιέχονται όλες οι ρυθμίσεις drives που έχουμε κάνει με το rclone.

Ρύθμιση φακέλου drive

Εάν επιθυμούμε να μεταφέρουμε αρχεία από και προς μόνο ένα συγκεκριμένο φακέλο ενός drive, τότε:

  1. Βρίσκουμε από το URL του φακέλου στον browser το folder id.
  2. Χρησιμοποιούμε το id αυτό στο πεδίο root_folder_id> κατά τη ρύθμιση του rclone.

Εύρεση root folder id

Επιλέγουμε το φάκελο:

Αντιγράφουμε το folder id:

Χρησιμοποιούμε το id αυτό κατά τη ρύθμιση του rclone:

$ rclone config
    ...
root_folder_id> 1FpxxxxxxxxxxxxxxxxxxxxxxxxfSYs
    ...

Χρήση

Ακολουθούν παραδείγματα χρήσης του rclone. Στα παρακάτω παραδείγματα, my-team-project-drive είναι το όνομα του drive που δώσαμε στο πεδίο name> κατά τη ρύθμιση.

Σημείωση

Δεν υποστηρίζεται ο συνεχής και αυτόματος συγχρονισμός του drive με rclone mount.

Αντιγραφή αρχείων

Αντιγραφή ενός αρχείου από το Google Drive στον login κόμβο

$ rclone copy my-team-project-drive:/path/to/file.txt ./local-directory/path/to

Αντιγραφή ενός αρχείου από τον login κόμβο στο Google Drive

$ rclone copy ./local-directory/path/to/file.txt my-team-project-drive:/path/to/

Αντιγραφή όλου του drive

Αντιγραφή ολόκληρου drive από το Google Drive προς το home directory στον login κόμβο

$ rclone sync my-team-project-drive: ~/local-directory

Αντιγραφή ολόκληρου drive από τον login κόμβο προς το Google Drive

$ rclone sync ~/local-directory my-team-project-drive:

Προσοχή

Κατά την αντιγραφή με sync, όσα αρχεία άλλαξαν ή διαγράφτηκαν τοπικά, θα υποστούν μεταβολές και στο Google Drive, και αντίστροφα.

Μεταφορά αρχείων από remote storage με sshfs

Για να κάνουμε mount ένα remote filesystem, μπορούμε να χρησιμοποιήσουμε τον SSHFS client, εφόσον ο server στον οποίο φιλοξενείται υποστηρίζει SFTP. Για τον σκοπό αυτό, μπορούμε να χρησιμοποιήσουμε την εντολή sshfs ως εξής:

SSHFS: mount remote filesystem

$ sshfs [user@]hostname:[directory] mountpoint

Μπορούμε να δούμε οδηγίες για τα επιπλέον options της εντολή sshfs προσθέτοντας το --help option ως εξής:

$ sshfs --help