Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ ModelArts/ Preguntas frecuentes/ Notebook (Nueva Versión)/ Carga o descarga de datos/ ¿Cómo cargo un archivo desde una instancia de Notebook a OBS o descargo un archivo desde OBS a una instancia de Notebook?
Actualización más reciente 2023-10-09 GMT+08:00

¿Cómo cargo un archivo desde una instancia de Notebook a OBS o descargo un archivo desde OBS a una instancia de Notebook?

En una instancia de notebook, puede invocar a la API de MoXing de ModelArts o al SDK para intercambiar datos con OBS para cargar un archivo en OBS o descargar un archivo desde OBS a la instancia de notebook.

Figura 1 Cargar o descargar un archivo

Para obtener más información sobre cómo cargar archivos mediante OBS Browser, consulte Carga y descarga de archivos mediante OBS Browser +.

Método 1: Usar MoXing para cargar y descargar un archivo

Desarrollado por el equipo de ModelArts, MoXing es un marco de aceleración de entrenamiento distribuido basado en motores de aprendizaje profundo de código abierto como TensorFlow y PyTorch. MoXing hace que la codificación de modelos sea más fácil y eficiente.

MoXing proporciona un conjunto de API de objetos de archivo para leer y escribir archivos de OBS.

Para obtener detalles sobre la asignación entre las API de MoXing y las API nativas y cómo invocar a las API, consulta Operaciones de archivos de MoXing.

Código de ejemplo:

import moxing as mox

# Download the OBS folder sub_dir_0 from OBS to a notebook instance.
mox.file.copy_parallel('obs://bucket_name/sub_dir_0', '/home/ma-user/work/sub_dir_0')
# Download the OBS file obs_file.txt from OBS to a notebook instance.
mox.file.copy('obs://bucket_name/obs_file.txt', '/home/ma-user/work/obs_file.txt')

# Upload the OBS folder sub_dir_0 from a notebook instance to OBS.
mox.file.copy_parallel('/home/ma-user/work/sub_dir_0', 'obs://bucket_name/sub_dir_0')
# Upload the OBS file obs_file.txt from a notebook instance to OBS.
mox.file.copy('/home/ma-user/work/obs_file.txt', 'obs://bucket_name/obs_file.txt')

Método 2: Uso del SDK para cargar y descargar un archivo

Invoque al SDK de ModelArts para descargar un archivo de OBS.

Ejemplo de código: Descargue file1.txt de OBS a /home/ma-user/work/ en la instancia de notebook. Todo el nombre del bucket, el nombre de la carpeta y el nombre del archivo son personalizables.

1
2
3
from modelarts.session import Session
session = Session()
session.obs.download_file(src_obs_file="obs://bucket-name/dir1/file1.txt", dst_local_dir="/home/ma-user/work/")

Invoque al SDK de ModelArts para descargar una carpeta desde OBS.

Código de ejemplo: Descargue dir1 de OBS a /home/ma-user/work/ en la instancia de notebook. El nombre del bucket y el nombre de la carpeta son personalizables.

from modelarts.session import Session
session = Session()
session.obs.download_dir(src_obs_dir="obs://bucket-name/dir1/", dst_local_dir="/home/ma-user/work/")

Invoque al SDK de ModelArts para cargar un archivo en OBS.

Ejemplo de código: Cargue file1.txt en la instancia del notebook a obs://bucket-name/dir1/ del bucket de OBS. Todo el nombre del bucket, el nombre de la carpeta y el nombre del archivo son personalizables.

1
2
3
from modelarts.session import Session
session = Session()
session.obs.upload_file(src_local_file='/home/ma-user/work/file1.txt', dst_obs_dir='obs://bucket-name/dir1/')

Invoque al SDK de ModelArts para cargar una carpeta en OBS.

Ejemplo de código: Suba /work/ en la instancia del notebook a obs://bucket-name/dir1/work/ del bucket-name. El nombre del bucket y el nombre de la carpeta son personalizables.

from modelarts.session import Session
session = Session()
session.obs.upload_dir(src_local_dir='/home/ma-user/work/', dst_obs_dir='obs://bucket-name/dir1/')

Manejo de errores

Si descarga un archivo de OBS a la instancia de su notebook y el sistema muestra el mensaje de error "Permission denied", realice las siguientes operaciones para solucionar problemas: