سرویس آبجکت‌استوریج می‌تواند از وب‌سایت‌های ایستا (static) میزبانی کند. وب‌سایت‌های ایستا دارای محتویات ایستا مانند عکس، صفحات html یا اسکریپت‌های سمت کاربر (مانند جاوااسکریپت) هستند. بدین صورت که با معرفی فایل اصلی HTML در تنظیمات باکت می‌توانید مشخص کنید آدرس اعلام شده از سمت شما به کدام آبجکت اشاره کند.

توجه کنید که سرویس آبجکت‌استوریج از وب‌سایت‌های پویا که شامل اسکریپت‌های سمت سرور مانند PHP و ASP.NET هستند، پشتیبانی نمی‌کند. برای استفاده از میزبانی وب‌سایت سرویس آبجکت‌استوریج باید یک باکت را که محتوی فایل‌های وب‌سایت است به این سرویس معرفی کنید.

نشانی وب‌سایت

زمانی که یک باکت را به عنوان وب‌سایت تنظیم می‌کنید، نشانی وب‌سایت شما با توجه به این‌که باکت شما در کدام دیتاسنتر قرار دارد به یکی از این دو شکل خواهد بود (به عبارت website در نشانی‌ها توجه کنید):

http://bucket-name.s3-website.thr2.sotoon.ir

http://bucket-name.s3-website.thr1.sotoon.ir

تنظیمات وب‌سایت

برای تنظیم یک باکت به عنوان وب‌سایت می‌توانید با استفاده از ابزار aws و دستور website به این شکل استفاده کنید. همین طور در نسخه جدید پنل استوریج می‌توانید از بخش تنظیمات باکت نیز این قابلیت را فعال کنید:

aws --endpoint http://KISE_ENDPOINT/ s3 website s3://my-bucket/ --index-document index.html --error-document error.html

استفاده از تنظیمات index-document و error-document اختیاری است.

تنظیمات Index-document: مقدار index-document به صورت پسوند به درخواست‌هایی که مربوط به یک دایرکتوری باشند، اضافه می‌شود. به عنوان مثال اگر شما برای وب‌سایتتان index.html را به عنوان index-document قرار داده باشید، و یک کاربر نشانی مربوط به دایرکتوری my-bucket/images را در مرورگر قرار دهد، فایل my-bucket/images/index.html باز خواهد شد. مقدار index-document نمی‌تواند حاوی / باشد.

تنظیمات error-document: نشانی فایلی که در صورت وقوع خطاهای 4xx باید برای کاربر نشان داده شود.

مشخص کردن نوع فایل‌ها

برای این‌که مرورگر بتواند فایل‌های شما را به درستی نمایش دهد، باید هدر Content-Type برای فایل‌های شما تنظیم شود. این مقدار را در زمان بارگذاری فایل‌ها می‌توانید از طریق مشخص کردن مقدار content-type، تنظیم کنید. برای مثال، بارگذاری یک فایل HTML به این صورت خواهد بود:

aws --endpoint-url http://KISE_ENDPOINT/ s3api put-object --bucket bucket-name --key index.html --body index.html --content-type text/html

تنظیمات دسترسی

برای این‌که وب‌سایت شما دسترسی عمومی داشته باشد، باید با استفاده از باکت پالیسی دسترسی خواندن را به صورت عمومی باز کنید. لازم به ذکر است دسترسی عمومی به باکت کافی نیست و لازم است آبجکت‌هایی که به صفحات پابلیک شما اشاره می‌کنند نیز باید عمومی باشند.

راه دیگر تنظیم دسترسی خواندن عمومی از طریق ACL در هنگام بارگذاری فایل‌هاست. همین طور می‌توانید از بخش تنظیمات آبجکت یا باکت از طریق پنل اوشن نیز این تغییرات را اعمال کنید:

aws --endpoint-url http://KISE_ENDPOINT/ s3api put-object --bucket bucket-name --key index.html --body index.html --content-type text/html --acl public-read

تنظیمات پیشرفته‌تر

برای تنظیمات پیشرفته‌تر وب‌سایت می‌توانید از دستور put-bucket-website استفاده کنید:

aws --endpoint http://KISE_ENDPOINT/ s3api put-bucket-website --bucket my-bucket --website-configuration file://website.json

یک مثال از فایل website.json:

{
  "ErrorDocument": {
    "Key": "string"
  },
  "IndexDocument": {
    "Suffix": "string"
  },
  "RedirectAllRequestsTo": {
    "HostName": "string",
    "Protocol": "http"|"https"
  },
  "RoutingRules": [
    {
      "Condition": {
        "HttpErrorCodeReturnedEquals": "string",
        "KeyPrefixEquals": "string"
      },
      "Redirect": {
        "HostName": "string",
        "HttpRedirectCode": "string",
        "Protocol": "http"|"https",
        "ReplaceKeyPrefixWith": "string",
        "ReplaceKeyWith": "string"
      }
   }
    ...
  ]
}

برای اطلاع دقیق از تنظیمات قابل استفاده در فایل website.json و نحوه استفاده از آن‌ها به این صفحه در مستندات ابزار aws مراجعه فرمایید.

مطالعه بیشتر:

راهنمای دریافت و مدیریت ACL آبجکت‌ها