Cette rubrique explique comment monter des compartiments Object Storage Service (OSS) sur des systèmes de fichiers locaux sous différents systèmes d'exploitation en utilisant s3fs, goofys et Rclone. Vous pouvez ainsi manipuler les objets OSS comme des fichiers locaux et faciliter le partage des données.
Prérequis
Un utilisateur Resource Access Management (RAM) a été créé et une paire AccessKey a été obtenue. Pour plus d'informations, consultez la page Créer un utilisateur RAM.
-
Des autorisations système ou personnalisées ont été accordées à l'utilisateur RAM.
Autorisations système : vous pouvez associer la stratégie AliyunOSSFullAccess à l'utilisateur RAM pour lui permettre de gérer OSS, ou la stratégie AliyunOSSReadOnlyAccess pour lui accorder un accès en lecture seule aux objets OSS.
Autorisations personnalisées : vous pouvez attribuer des autorisations sur mesure à l'utilisateur RAM afin de mettre en œuvre un contrôle d'accès OSS granulaire adapté à vos scénarios métier. Pour plus d'informations, consultez la page Exemples courants de stratégies RAM.
s3fs
s3fs permet de monter un compartiment OSS sur un système de fichiers local sous Linux ou macOS. Une fois le montage effectué, vous pouvez manipuler les objets OSS comme des fichiers locaux et partager les données. Pour en savoir plus sur s3fs, visitez le site GitHub. Si vous rencontrez des problèmes lors du montage d'un compartiment OSS avec s3fs, consultez la page FAQ.
Fonctionnalités clés
Prend en charge la plupart des fonctionnalités du système de fichiers POSIX. Par exemple, vous pouvez télécharger et téléverser des objets et des répertoires, et configurer des liens symboliques ainsi que les permissions utilisateur.
Prend en charge l'écriture aléatoire et permet d'ajouter des données à un objet existant.
Ne prend pas en charge les liens physiques.
Téléverse les objets volumineux via un téléchargement multipartie.
Utilise des fichiers locaux comme cache.
Lorsque vous utilisez s3fs pour téléverser ou télécharger un objet, celui-ci doit être mis en cache localement. La vitesse de téléchargement ou de téléversement dépend des performances en lecture/écriture du disque. La taille du cache local peut augmenter indéfiniment. Nous vous recommandons de purger régulièrement le cache local.
Procédure
Pour monter un compartiment OSS sur un système de fichiers local à l'aide de s3fs, procédez comme suit :
Installez s3fs.
Les exemples ci-dessous illustrent l'installation de s3fs sous Ubuntu, CentOS et macOS. Pour installer s3fs sur d'autres systèmes d'exploitation, consultez la page Installation.
-
Ubuntu
sudo apt install s3fs -
CentOS
sudo yum install epel-release sudo yum install s3fs-fuse -
Mac
brew install --cask macfuse brew install gromgit/fuse/s3fs-mac
-
Configurez les informations de compte nécessaires pour accéder au compartiment.
Enregistrez la paire AccessKey permettant d'accéder au compartiment dans le fichier /.passwd-s3fs.
echo ACCESS_KEY_ID:ACCESS_KEY_SECRET > ${HOME}/.passwd-s3fs -
Définissez les permissions du fichier /.passwd-s3fs sur 600.
chmod 600 ${HOME}/.passwd-s3fs -
Montez le compartiment.
-
Exécutez la commande suivante pour créer le point de montage :
mkdir /tmp/oss-bucket -
Exécutez la commande suivante pour monter le compartiment examplebucket de la région Chine (Hangzhou) sur /tmp/oss-bucket :
s3fs examplebucket /tmp/oss-bucket -o passwd_file=$HOME/.passwd-s3fs -ourl=http://oss-cn-hangzhou.aliyuncs.comRemarqueSi une instance Elastic Compute Service (ECS) se trouve dans la même région que le compartiment OSS, vous pouvez utiliser le point de terminaison interne oss-cn-hangzhou-internal.aliyuncs.com pour y accéder depuis l'instance ECS. Pour plus d'informations, consultez la page Régions et points de terminaison.
Pour connaître les paramètres pris en charge par s3fs, visitez la page Options.
-
goofys
goofys permet de monter un compartiment sur un système de fichiers local sous Linux ou macOS. goofys ne prend en charge qu'un sous-ensemble des fonctionnalités POSIX. Pour plus d'informations, visitez le site GitHub.
Fonctionnalités clés
Prend uniquement en charge l'écriture séquentielle.
Ne conserve pas les permissions ni les attributs des objets.
Ne prend pas en charge les liens symboliques ni les liens physiques.
L'heure de création (ctime), l'heure d'accès (atime) et l'heure de modification (mtime) sont identiques.
Ne dépend pas des caches locaux.
Les opérations sur les métadonnées des objets ne sont pas prises en charge. Dans certains scénarios qui s'appuient sur ces métadonnées, l'utilisation de goofys est limitée.
Contrairement à s3fs, goofys ne repose pas sur un cache local. Il offre ainsi de meilleures performances en lecture et en écriture pour des opérations telles que cp et mv. Pour plus d'informations, consultez la page Benchmark.
L'écriture aléatoire n'est pas prise en charge. goofys convient mieux aux scénarios en lecture seule.
Utilisez goofys en fonction de vos besoins métier.
Procédure
Pour monter un compartiment OSS sur un système de fichiers local à l'aide de goofys, procédez comme suit :
Installez goofys.
Les exemples ci-dessous illustrent l'installation de goofys sous Linux et macOS. Pour installer goofys sur d'autres systèmes d'exploitation, consultez la page Installation.
-
Linux
curl -SL "https://github.com/kahing/goofys/releases/latest/download/goofys" -o $HOME/goofys chmod u+x $HOME/goofys -
Mac
brew cask install osxfuse brew install goofys
-
Configurez les informations de compte nécessaires pour accéder au compartiment.
-
Exécutez la commande suivante pour créer le fichier de configuration :
mkdir ~/.aws -
Exécutez la commande suivante pour ouvrir le fichier de configuration :
vi ~/.aws/credentials -
Spécifiez la paire AccessKey, composée d'un AccessKey ID et d'un AccessKey secret.
[default] aws_access_key_id = The AccessKey ID that is used to access OSS. aws_secret_access_key = The AccessKey secret that is used to access OSS.
-
-
Montez le compartiment.
Dans l'exemple suivant, le compartiment examplebucket de la région Chine (Hangzhou) est monté sur /mnt/oss-bucket.
-
Exécutez la commande suivante pour créer le point de montage :
mkdir /mnt/oss-bucket -
Exécutez la commande suivante pour monter le compartiment examplebucket sur /mnt/oss-bucket :
$HOME/goofys --endpoint http://oss-cn-hangzhou.aliyuncs.com --subdomain examplebucket /mnt/oss-bucketRemarqueL'option --subdomain dans l'exemple ci-dessus est requise pour activer le nom de domaine virtuel. Les autres options, telles que le compartiment à monter, le point de terminaison de la région où il se trouve et le point de montage, peuvent être adaptées selon vos besoins.
Si une instance ECS se trouve dans la même région que le compartiment OSS, vous pouvez utiliser le point de terminaison interne oss-cn-hangzhou-internal.aliyuncs.com pour y accéder depuis l'instance ECS.
-
Rclone
Rclone est un programme en ligne de commande destiné à la gestion des données dans le cloud. Il prend en charge la synchronisation des données entre plus de 50 services de stockage cloud. Rclone permet de monter des compartiments sur des systèmes de fichiers locaux sous Windows. Vous pouvez ainsi utiliser ces compartiments comme des disques locaux pour partager des données.
Fonctionnalités clés
Prend en charge la synchronisation de fichiers, le transfert de fichiers, le chiffrement de fichiers et le montage de compartiments.
Permet de monter un compartiment sur un système de fichiers local sous divers systèmes d'exploitation et fournit des services via différents protocoles.
Pour plus d'informations, visitez le site Rclone syncs your files to cloud storage.
Procédure
Pour monter un compartiment OSS sur un système de fichiers local sous Windows à l'aide de Rclone, procédez comme suit :
-
Suivez les instructions à l'écran pour télécharger et installer Winfsp.
Dans cet exemple, nous téléchargeons winfsp-1.12.22339. Pour obtenir cette version, visitez la page WinFsp 2023t.
-
Téléchargez Rclone.
Dans cet exemple, nous téléchargeons rclone-v1.60.1-windows-amd64. Pour obtenir cette version, visitez la page Downloads. Rclone étant un programme en ligne de commande, il suffit de décompresser le package d'installation dans un répertoire local, par exemple D:\Rclone.
-
Configurez Rclone.
Ajoutez D:\Rclone aux variables d'environnement.
-
Ouvrez une interface de ligne de commande (CLI), saisissez rclone --version, puis appuyez sur Entrée.
Si la réponse indique rclone 1.60.1, l'installation est réussie.
Saisissez la commande rclone config, puis appuyez sur Entrée.
-
Saisissez n, appuyez sur Entrée, puis créez un nouveau remote.
Dans cet exemple, le nouveau remote est nommé test-remote.
Saisissez un nom de disque, par exemple oss-disk, puis appuyez sur Entrée.
Sélectionnez l'option contenant Amazon S3 Compliant Storage ou saisissez 5, puis appuyez sur Entrée.
Sélectionnez l'option contenant Alibaba Cloud Object Storage System (OSS) ou saisissez 2, puis appuyez sur Entrée.
Lorsque env_auth> s'affiche dans la CLI, appuyez sur Entrée.
Lorsque access_key_id> s'affiche dans la CLI, saisissez l'AccessKey ID utilisé pour accéder à OSS, puis appuyez sur Entrée.
Lorsque secret_access_key> s'affiche dans la CLI, saisissez l'AccessKey secret utilisé pour accéder à OSS, puis appuyez sur Entrée.
-
Lorsque endpoint> s'affiche dans la CLI, saisissez le point de terminaison utilisé pour accéder à OSS, puis appuyez sur Entrée.
Par exemple, si le compartiment se trouve dans la région Chine (Hangzhou), définissez le point de terminaison sur oss-cn-hangzhou.aliyuncs.com. Si une instance ECS exécutant Windows se trouve dans la même région que le compartiment OSS, vous pouvez utiliser le point de terminaison interne oss-cn-hangzhou-internal.aliyuncs.com pour y accéder depuis l'instance ECS.
-
Lorsque acl> s'affiche dans la CLI, sélectionnez la liste de contrôle d'accès (ACL) de l'objet, puis appuyez sur Entrée.
Cette option s'applique uniquement aux objets nouvellement téléversés. Choisissez l'ACL de l'objet selon vos besoins. Dans cet exemple, saisissez 1 pour définir l'ACL de l'objet sur default. default signifie que l'ACL de l'objet est privée.
-
Lorsque storage_class> s'affiche dans la CLI, sélectionnez la classe de stockage de l'objet, puis appuyez sur Entrée.
Dans cet exemple, saisissez 1 pour définir la classe de stockage de l'objet sur default. default signifie que la classe de stockage de l'objet est héritée du compartiment.
Lorsque Edit advanced config?(y/n) s'affiche dans la CLI, saisissez n, puis appuyez sur Entrée.
Saisissez q pour terminer la configuration.
-
Montez le compartiment.
Le code suivant illustre le montage d'un compartiment nommé examplebucket sur E: en utilisant D:\disk-cache comme répertoire de cache :
rclone mount oss-disk:/examplebucket E: --cache-dir D:\disk-cache --vfs-cache-mode writesSi le message « The service rclone has been started » s'affiche, le compartiment examplebucket est monté sur E:. Vous pouvez alors consulter examplebucket(E:).