Calcul de Fonction et Intégration OSS

Home PDF

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’))”


Back 2025.02.22 Donate