Изменение настроек публичного доступа к ресурсу
Метод изменяет настройки доступа для ранее опубликованного ресурса. При использовании текущей версии 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": []
}
]
}
Параметр |
Тип данных |
Описание |
|
integer |
Время жизни ссылки на ресурс (в секундах). По истечении указанного времени ссылка на ресурс перестанет быть действительной, однако ресурс продолжит считаться опубликованным. Как создать новую ссылку на ресурсВыполните одно из действий:
|
|
string |
Пароль для общего доступа к ресурсу по ссылке. Обязателен, если в |
|
array |
Массив параметров, которые задают права доступа пользователей к ресурсу. Применяется, если query-параметр Позволяет задать настройки для разных уровней доступа:
|
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[]
, у вашего сервиса должна быть возможность и на обработку ответов с этим массивом.
Обязательный параметр.
Параметр обязательный, если в запросе присутствует объект, к которому этот параметр относится.