حوسبة الدوال وتكامل نظام التشغيل المفتوح المصدر

Home PDF

يُظهر هذا الكود كيفية دمج خدمة Alibaba Cloud Function Compute مع خدمة تخزين الكائنات (OSS). يقوم بتنزيل ملف من عنوان URL محدد ويرفعه إلى دلو OSS.

الكود

# -*- coding: utf-8 -*-
import oss2
import requests
import logging
import os

def handler(event, context):
    # الإعدادات
    # 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"  # اسم الدلو الخاص بك
    oss_endpoint = "oss-cn-hangzhou.aliyuncs.com"  # نقطة النهاية العامة
    
    try:
        # استخدام ARN الدور المُقدم لإنشاء كائن المصادقة
        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. تهيئة عميل OSS بنقطة النهاية الصحيحة
        bucket = oss2.Bucket(
            sts_auth,
            oss_endpoint,
            oss_bucket_name
        )

        # 3. تنزيل وتحميل تدفقي
        logging.info("بدء التنزيل...")
        with requests.get(model_url, stream=True) as response:
            response.raise_for_status()
            
            # رفع إلى 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("نجح الرفع!")
            return "نجاح"
        else:
            raise Exception(f"فشل رفع OSS: {result.status}")

    except Exception as e:
        logging.error(f"خطأ: {str(e)}")
        raise e

الخطأ

لقد واجهنا نفس الخطأ كما كان من قبل. يبدو أن هناك حاجة إلى VPN لإكمال هذه المهمة.

2025-01-24 17:43:342025-01-24 17:43:34 1-679360a6-154b432a-15cadcce0c27 [ERROR] { “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