وب‌هوک‌های دسترسی

در این مستند شما با ساختار وب‌هوک‌های کنترل دسترسی که در قسمت تنظیمات وارد می‌کنید، آشنا خواهید شد.

پیش‌نیازها

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

مقدمه

برای ایجاد امنیت در سرویس فایل می توان از ویژگی وب هوک استفاده کرد. برای هر کدام از امکانات سرویس فایل، وب هوک جداگانه ای وجود دارد. توسعه‌دهندگان آدرس وب هوک هر کدام از امکانات را در پنل وارد می کنند تا هنگامی که درخواستی برای آن سرویس آمد، وب هوک ثبت شده توسط کاربر صدا زده شود. تمام وب هوک های ثبت شده توسط کاربران باید از نوع Post باشند.

همچین شما می توانید یک سری پارامتر دلخواه را برای سیستم ما ارسال کنید. این پارامترها به همراه مقادیر آن ها دقیقا در یک نگاشت (map) هنگام فراخوانی وب هوک شما برای شما ارسال خواهد شد. همچنین می توانید تعدادی هدر نیز برای ما ارسال کنید تا ما دقیقا همان ها را در یک map برای شما ارسال کنیم. این هدرها باید با کلمه Y-Storage- شروع شوند.

مقادیر ارسالی از سمت بکتوری

مقادیر ارسالی از سمت بکتوری برای هر وب‌هوک در بدنه‌ی درخواست و در قالب json می‌آید و برای هر سرویس متفاوت است. این مقادیر برای سرویس‌های مختلف (دانلود، آپلود و …) مطابق با آن‌چه که در ادامه می‌آید، هستند.

تمامی request body های ارسالی به وب‌هوک‌های شما حداقل شامل این کلیدها می‌باشند:

{
    headers: {
        ...
    },
    parameters: {
        "<Param-Key>": "<Param-Value>",
        "<Param-Key>": "<Param-Value>",
        ...
    },
    ip: "172.80.10.123",
    domain: "mydomain.com",
    schema: "http"
}

کلیدهای headers و parameters و محتویات آن‌ها پیش از این توضیح داده شده‌اند. کلید ip همان‌طور که از نامش پیداست، آی‌پی کلاینت درخواست دهنده را نشان می‌دهد. domain نیز دامنه‌ای را نشان می‌دهد که به آن درخواست مربوطه آمده است. schema نیز یکی از مقادیر http یا https خواهد بود و نشان دهنده‌ی نوع درخواست از domain شماست.

سرویس دانلود

بدنه‌ی درخواستی که برای شما هنگام فراخوانی وب هوک فرستاده می شود، به صورت زیر است:

{
    // Basics key&values as described above,
    resource: "path/to/photo.png"
}

سرویس ساخت پوشه

بدنه‌ی درخواستی که برای شما هنگام فراخوانی وب هوک فرستاده می شود، به صورت زیر است:

{
    // Basics key&values as described above,
    path: "path/to/folder/"
}

سرویس آپلود فایل

بدنه‌ی درخواستی که برای شما هنگام فراخوانی وب هوک فرستاده می شود، به صورت زیر است:

{
    // Basics key&values as described above,
    fileItems: [
        {
            path: "path/to/folder",
            replacing: true,
            size: 123456
        },
        ...
    ]
}

سرویس به دست آوردن اطلاعات یک پوشه

بدنه‌ی درخواستی که برای شما هنگام فراخوانی وب هوک فرستاده می شود، به صورت زیر است:

{
    // Basics key&values as described above,
    url: "/path1/path2/",
    pageNumber: 1,
    pageSize: 10,
    sortingType: "ASC"
}

سرویس حذف فایل/پوشه

بدنه‌ی درخواستی که برای شما هنگام فراخوانی وب هوک فرستاده می شود، به صورت زیر است:

{
    // Basics key&values as described above,
    urls: [
        "/path1/file1.mp3",
        "/path1/child_directory/"
    ],
    forced: [false, true]
}

سرویس کپی فایل/پوشه

بدنه‌ی درخواستی که برای شما هنگام فراخوانی وب هوک فرستاده می شود، به صورت زیر است:

{
    // Basics key&values as described above,
    sourceUrls: [
        "/path1/path2/path3/",
        "/path1/path2/x.txt"
    ],
    forces: [true, false],
    destinationUrl: "/path1/path4/"
}

سرویس جابه‌جایی فایل/پوشه

بدنه‌ی درخواستی که برای شما هنگام فراخوانی وب هوک فرستاده می شود، به صورت زیر است:

{
    // Basics key&values as described above,
    sourceUrls: [
        "/path1/path2/path3/",
        "/path1/path2/x.txt"
    ],
    forces: [true, false],
    destinationUrl: "/path1/path4/"
}

سرویس تغییر نام فایل

بدنه‌ی درخواستی که برای شما هنگام فراخوانی وب هوک فرستاده می شود، به صورت زیر است:

{
    items: [
        {
            pathToRename: "/path1/path2/file1.txt",
            newFileName: "newFile1.txt"
        },
        {
            pathToRename: "/path1/path2/file2.txt",
            newFileName: "newFile2.txt"
        }
    ]
}

پاسخ وب‌هوک از سمت شما

سرویس شما باید کلاس زیر را برای سیستم ما ارسال کند:

{
    accept: true    // Or false
}

اگر کاربر اجازه دسترسی داشته باشد، فیلد accept را برابر true و در غیر این صورت برابر false قرار دهید.

به این ترتیب، شما با تمامی ویژگی‌های تنظیمات دسترسی و وب‌هوک‌ها آشنا شدید.