انتشار وبسایت
انتشار فایلهای ساختهشده روی HTTPS مستقل.
سایت مستقل با HTTPS
Starter یک وبسایت با آدرس HTTPS مستقل روی Google Cloud میزبانی میکند. فایلهای ساختهشدهٔ HTML، CSS و JavaScript را بفرستید؛ سایت و کوکیهای آن از کنسول و سایت دیگر مشتریان جدا هستند. حداقل index.html، حداکثر ۱۰۰ فایل و ۳ MB محتوای هر انتشار پشتیبانی میشود. فایل باینری encoding:base64 میگیرد. مسیرها باید نسبی، یکتا و بدون نقطهٔ مخفی یا .. باشند.
import json, os, urllib.request, urllib.error
payload = {
"name": "محصول من",
"confirm_public": True,
"files": [
{
"path": "index.html",
"content": "<!doctype html><html lang='fa' dir='rtl'><meta charset='utf-8'><meta name='viewport' content='width=device-width,initial-scale=1'><title>محصول من</title><h1>سلام از ابر ساروی</h1></html>"
}
]
}
request = urllib.request.Request(
"https://api.sarovi.ir/v1/cloud/{id}/sites",
data=json.dumps(payload, ensure_ascii=False).encode("utf-8"),
headers={
"Authorization": "Bearer " + os.environ["SAROVI_API_KEY"],
"Content-Type": "application/json"
},
method="POST"
)
try:
with urllib.request.urlopen(request, timeout=300) as response:
result = json.load(response)
print(result)
except urllib.error.HTTPError as error:
detail = json.load(error)
raise RuntimeError(f"{error.code}: {detail['error'].get('code', detail['error'].get('type', 'HTTP_ERROR'))}") from errorکلید را در متغیر محیطی SAROVI_API_KEY قرار بده. بدون نصب کتابخانه؛ با Python استاندارد.
POST /v1/cloud/{id}/sites به cloud:hosting نیاز دارد. confirm_public:true اجازهٔ عمومیکردن همین فایلهاست. فایل .env، رمز و کلید srv_ را وارد خروجی سایت نکنید.
وضعیت واقعی انتشار
پاسخ 202 فقط ثبت انتشار است. GET /v1/cloud/{id}/sites/{siteId} را با فاصلهٔ چند ثانیه تا READY یا ERROR بررسی کنید. پس از READY لینک را در مرورگر باز کنید. یک نمونهٔ سرور بیشتر ساخته نمیشود و هنگام بیکاری به صفر میرسد؛ اولین بازدید ممکن است چند ثانیه طول بکشد. هر دریافت فایل سایت در سقف عملیات ماهانه حساب میشود. سقف درخواست، کندی شروع یا خطای سرویس را به شکل صفحهٔ موفق پنهان نکنید.
بهروزرسانی
POST /v1/cloud/{id}/sites/{siteId}/deployments با files و confirm_public:true همان سایت را بهروزرسانی میکند. در Starter، POST مجدد /sites نیز سایت موجود را بهروزرسانی میکند. لینک همان است و فایلهای ارسالی جای فایلهای قبلی را میگیرند. هنگام انتشار جاری تا پایان یا اعلام خطا صبر کنید. کش فایلها ممکن است ۶۰ ثانیه نسخهٔ قبلی را نشان دهد.
داده و تابع
کلید scpub_ و آدرس اجرای برنامه را با نمونههای fetch یا Python متصل کنید. کاربر از /auth/login نشست میگیرد؛ داده و فایل خصوصی با همان نشست خوانده میشوند. منطق کوتاه سرور در /functions اجرا میشود. این میزبانی static است: npm build، SSR، کانتینر دلخواه و دامنهٔ شخصی در این نسخه ارائه نمیشود. خروجی Vite یا ابزار ساخت خود را پیش از ارسال آماده کنید.
حذف
DELETE /v1/cloud/{id}/sites/{siteId} با confirm_delete:true سرویس سایت و فایلهای انتشار را حذف میکند. این عمل بازگشت خودکار ندارد. حذف کل ابر نیز سایت، تابعها، داده، نشستها و فایلها را حذف میکند. ابتدا نسخهٔ لازم را نگه دارید. فایلهای سایت یا مقادیر محرمانه در گزارش درخواست API ذخیره نمیشوند.
قرارداد API 1.6.0 · تاریخچهٔ تغییرات