Изменение настроек публичного доступа к ресурсу

Метод изменяет настройки доступа для ранее опубликованного ресурса. При использовании текущей версии API с массивом настроек доступа accesses[] позволяет дополнительно задать персональный доступ для уже опубликованных файлов или папок.

Важно

Изменить настройки доступа к публичному ресурсу можно с OAuth-токеном:

  • владельца ресурса;
  • пользователя, у которого есть права на редактирование ресурса.

Необходимые права доступа для OAuth-приложения:

  • cloud_api:disk.read
  • cloud_api:disk.write
  • cloud_api:disk.app_folder

Формат запроса

Метод: PATCH.

https://cloud-api.yandex.net/v1/disk/public/resources/public-settings
 ? path=<путь к публикуемому ресурсу>
 & [allow_address_access=<возможность обрабатывать ответы с массивом параметров, задающих права доступа>]

Описание query-параметров

path*

Путь к публикуемому ресурсу. Например, %2Fbar%2Fphoto.png.

Путь в значении параметра следует кодировать в URL-формате.

allow_address_access

Параметр с типом boolean, который обозначает, по какому формату составлен запрос — с настройками персонального доступа или без.

Допустимые значения:

  • false (значение по умолчанию) — запрос не содержит массив настроек персонального доступа. Значение используется для обеспечения обратной совместимости: для запросов, сформированных по формату предыдущих версий API, в которых нет элементов массива accesses[], query-параметр allow_address_access должен иметь значение false либо отсутствовать.
  • true — запрос составлен в формате, который предполагает использование настроек персонального доступа. Применяется, если вы используете текущую версию API и отправляете запрос с телом, в котором содержится массив accesses[].

Чтобы отправлять запросы, которые содержат массив настроек доступа accesses[], у вашего сервиса должна быть возможность и на обработку ответов с этим массивом.

* Обязательный параметр.

Authorization: OAuth <token>
Content-Type: application/json

Тело запроса

В теле запроса передается объект PublicSettings, с помощью которого можно задать настройки доступа для публикуемого ресурса.

{
  "available_until": 1737968946,
  "password": "1234",
  "accesses": [
    {
    {
      "type": "macro",
      "macros": [
        "employees"
      ],
      "org_id": 999,
      "rights": [
        "read_with_password"
      ]
    },
    {
      "type": "user",
      "id": 1130000065996970,
      "rights": [
        "read"
      ]
    },
    {
      "type": "user",
      "id": 1130000065996971,
      "rights": [
        "write"
      ]
    },
    {
      "type": "user",
      "id": 1130000065996972,
      "rights": [
        "write",
        "read"
      ]
    },
    {
      "type": "user",
      "id": 1130000065996973,
      "rights": []
    },
    {
      "type": "group",
      "id": 100,
      "rights": [
        "read"
      ]
    },
    {
      "type": "group",
      "id": 101,
      "rights": [
        "write"
      ]
    },
    {
      "type": "group",
      "id": 102,
      "rights": [
        "write",
        "read"
      ]
    },
    {
      "type": "group",
      "id": 103,
      "rights": [
        "write",
        "read"
       ]
    },
    {
      "type": "department",
      "id": 0,
      "rights": [
        "read"
      ]
    },
    {
      "type": "department",
      "id": 1,
      "rights": [
        "write"
      ]
    },
    {
      "type": "department",
      "id": 2,
      "rights": [
        "write",
        "read"
      ]
    },
    {
      "type": "department",
      "id": 3,
      "rights": []
    }
  ]
}

Параметр

Тип данных

Описание

available_until

integer

Время жизни ссылки на ресурс (в секундах).

По истечении указанного времени ссылка на ресурс перестанет быть действительной, однако ресурс продолжит считаться опубликованным.

Как создать новую ссылку на ресурс

Выполните одно из действий:

password

string

Пароль для общего доступа к ресурсу по ссылке.

Обязателен, если в accesses.rights заданы права read_with_password или read_with_password_without_download.

accesses

array

Массив параметров, которые задают права доступа пользователей к ресурсу. Применяется, если query-параметр allow_address_access имеет значение true.

Позволяет задать настройки для разных уровней доступа:

  • общего — внутри организации или для любых пользователей Яндекс 360 для бизнеса;
  • персонального для определенных сотрудников организации;
  • персонального для определенных групп;
  • персонального для определенных подразделений.

accesses []

Массив accesses [] может содержать объекты, описывающие следующие уровни доступа:

  • Общий доступ

    Параметр

    Тип данных

    Описание

    type**

    string

    Тип субъекта, для которого задаются параметры доступа. Возможные значения:

    • macro — все субъекты уровня общего доступа;
    • user — сотрудник организации, для которого настроен персональный доступ;
    • group — группа в организации, для которой настроен персональный доступ;
    • department — отдел в организации, для которого настроен персональный доступ.

    macros

    array of string

    Массив, который содержит информацию о том, будет ли общий доступ к ресурсу с указанными правами предоставлен только внутри организации или для любых пользователей. Возможные значения:

    • employees — общий доступ к ресурсу только внутри определенной организации;
    • all — общий доступ для всех пользователей.

    Тип данных array указан для обеспечения обратной совместимости в будущих версиях API. Фактически следует указывать только одно из значений. Если указать оба, в ответе вернется ошибка.

    Поле обязательно, при "type":"macro".

    org_id

    integer

    Идентификатор организации, сотрудникам которой предоставляется общий доступ к ресурсу с правами, заданными в параметре rights данного объекта.

    Можно указать идентификатор только той организации, в которой состоит пользователь, от чьего имени отправляется запрос. Если OAuth-токен не принадлежит сотруднику указанной организации, в ответе на запрос придет ошибка.

    Поле обязательно, при "type":"macro" и "macros": "employees". В остальных случаях не учитывается.

    rights**

    array

    Права доступа к ресурсу.

    Возможные значения, если "type":"macro":

    • write — редактирование;
    • read — просмотр;
    • read_without_download — просмотр без возможности скачивания;
    • read_with_password — просмотр с доступом по паролю;
    • read_with_password_without_download — просмотр с доступом по паролю без возможности скачивания.

    Возможные значения, если в параметре type указаны user, group или department:

    • write — редактирование;
    • read — просмотр;

    Тип данных array указан для обеспечения обратной совместимости в будущих версиях API. Фактически следует указывать только одно из значений, так как каждый пользователь может иметь только один тип доступа к ресурсу. Если в массиве указать несколько прав, то учитываться будет наивысший по приоритету.

Объекты, которые описывают персональный доступ, имеют приоритет над объектом, описывающим общий доступ. Например, если для всех сотрудников организации настроен доступ с правом «просмотр», то некоторым из них можно переопределить это право на «редактирование».

Формат ответа

Успешный ответ

Если запрос был обработан без ошибок, настройки публичного доступа изменяются и API отвечает кодом 200 OK.

Ответ с ошибкой

Если запрос вызвал ошибку, возвращается подходящий код ответа, а тело ответа содержит описание ошибки.

Некоторые возможные ошибки:

  • 400 — Отсутствуют необходимые данные.
  • 401 — Не авторизован.
  • 403 — API недоступно. Ваши файлы занимают больше места, чем у вас есть. Удалите лишнее или увеличьте объём Диска. / API недоступно. Диск в режиме "только чтение". Проверьте тариф вашей организации. / API недоступно. Недопустимые права доступа. / API недоступно. Достигнут лимит на выдачу прав.
  • 404 — Не удалось найти запрошенный ресурс.
  • 423 — Технические работы. Сейчас можно только просматривать и скачивать файлы.
  • 503 — Сервис временно недоступен.

Путь к публикуемому ресурсу. Например, %2Fbar%2Fphoto.png.

Путь в значении параметра следует кодировать в URL-формате.

Параметр с типом boolean, который обозначает, по какому формату составлен запрос — с настройками персонального доступа или без.

Допустимые значения:

  • false (значение по умолчанию) — запрос не содержит массив настроек персонального доступа. Значение используется для обеспечения обратной совместимости: для запросов, сформированных по формату предыдущих версий API, в которых нет элементов массива accesses[], query-параметр allow_address_access должен иметь значение false либо отсутствовать.
  • true — запрос составлен в формате, который предполагает использование настроек персонального доступа. Применяется, если вы используете текущую версию API и отправляете запрос с телом, в котором содержится массив accesses[].

Чтобы отправлять запросы, которые содержат массив настроек доступа accesses[], у вашего сервиса должна быть возможность и на обработку ответов с этим массивом.

Обязательный параметр.

Параметр обязательный, если в запросе присутствует объект, к которому этот параметр относится.