Calcul de Fonction et Intégration OSS
Ce code montre comment intégrer Alibaba Cloud Function Compute avec OSS (Object Storage Service). Il télécharge un fichier depuis une URL spécifiée et le télécharge dans un bucket OSS.
Code
# -*- coding: utf-8 -*-
import oss2
import requests
import logging
import os
def handler(event, context):
# Configuration
# model_url = "https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.2-GGUF/resolve/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf"
model_url = "https://storage.googleapis.com/lzwjava1/ss_urls.txt"
oss_bucket_name = "lzw-download" # Nom de votre bucket
oss_endpoint = "oss-cn-hangzhou.aliyuncs.com" # Point de terminaison public
try:
# Utilisez le rôle ARN fourni pour créer l'objet d'authentification
role_arn = "acs:ram::1768386076294612:role/fc"
auth = oss2.Auth(
os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
)
sts_auth = oss2.StsAuth(
os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
os.environ['ALIBABA_CLOUD_SECURITY_TOKEN']
)
# 2. Initialisez le client OSS avec le point de terminaison approprié
bucket = oss2.Bucket(
sts_auth,
oss_endpoint,
oss_bucket_name
)
# 3. Téléchargement et téléchargement en streaming
logging.info("Démarrage du téléchargement...")
with requests.get(model_url, stream=True) as response:
response.raise_for_status()
# Téléchargement vers OSS
result = bucket.put_object(
'models/mistral-7b-instruct-v0.2.Q4_K_M.gguf',
response.iter_content(chunk_size=1024*1024)
)
if result.status == 200:
logging.info("Téléchargement réussi !")
return "Succès"
else:
raise Exception(f"Échec du téléchargement OSS : {result.status}")
except Exception as e:
logging.error(f"Erreur : {str(e)}")
raise e
Erreur
Nous avons rencontré la même erreur qu’auparavant. Il semble qu’un VPN soit nécessaire pour accomplir cette tâche.
2025-01-24 17:43:342025-01-24 17:43:34 1-679360a6-154b432a-15cadcce0c27 [ERREUR] { “errorMessage”: “HTTPSConnectionPool(host=’huggingface.co’, port=443): Max retries exceeded with url: /TheBloke/Mistral-7B-Instruct-v0.2-GGUF/resolve/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf (Caused by NewConnectionError(‘<urllib3.connection.HTTPSConnection object at 0x7f7d3c289f60>: Failed to establish a new connection: [Errno 101] Network is unreachable’))”