حوسبة الدوال وتكامل نظام التشغيل المفتوح المصدر
يُظهر هذا الكود كيفية دمج خدمة 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’))”