forked from MirrorHub/synapse
102 lines
2 KiB
Markdown
102 lines
2 KiB
Markdown
# List all media in a room
|
|
|
|
This API gets a list of known media in a room.
|
|
|
|
The API is:
|
|
```
|
|
GET /_synapse/admin/v1/room/<room_id>/media
|
|
```
|
|
including an `access_token` of a server admin.
|
|
|
|
It returns a JSON body like the following:
|
|
```
|
|
{
|
|
"local": [
|
|
"mxc://localhost/xwvutsrqponmlkjihgfedcba",
|
|
"mxc://localhost/abcdefghijklmnopqrstuvwx"
|
|
],
|
|
"remote": [
|
|
"mxc://matrix.org/xwvutsrqponmlkjihgfedcba",
|
|
"mxc://matrix.org/abcdefghijklmnopqrstuvwx"
|
|
]
|
|
}
|
|
```
|
|
|
|
# Quarantine media
|
|
|
|
Quarantining media means that it is marked as inaccessible by users. It applies
|
|
to any local media, and any locally-cached copies of remote media.
|
|
|
|
The media file itself (and any thumbnails) is not deleted from the server.
|
|
|
|
## Quarantining media by ID
|
|
|
|
This API quarantines a single piece of local or remote media.
|
|
|
|
Request:
|
|
|
|
```
|
|
POST /_synapse/admin/v1/media/quarantine/<server_name>/<media_id>
|
|
|
|
{}
|
|
```
|
|
|
|
Where `server_name` is in the form of `example.org`, and `media_id` is in the
|
|
form of `abcdefg12345...`.
|
|
|
|
Response:
|
|
|
|
```
|
|
{}
|
|
```
|
|
|
|
## Quarantining media in a room
|
|
|
|
This API quarantines all local and remote media in a room.
|
|
|
|
Request:
|
|
|
|
```
|
|
POST /_synapse/admin/v1/room/<room_id>/media/quarantine
|
|
|
|
{}
|
|
```
|
|
|
|
Where `room_id` is in the form of `!roomid12345:example.org`.
|
|
|
|
Response:
|
|
|
|
```
|
|
{
|
|
"num_quarantined": 10 # The number of media items successfully quarantined
|
|
}
|
|
```
|
|
|
|
Note that there is a legacy endpoint, `POST
|
|
/_synapse/admin/v1/quarantine_media/<room_id >`, that operates the same.
|
|
However, it is deprecated and may be removed in a future release.
|
|
|
|
## Quarantining all media of a user
|
|
|
|
This API quarantines all *local* media that a *local* user has uploaded. That is to say, if
|
|
you would like to quarantine media uploaded by a user on a remote homeserver, you should
|
|
instead use one of the other APIs.
|
|
|
|
Request:
|
|
|
|
```
|
|
POST /_synapse/admin/v1/user/<user_id>/media/quarantine
|
|
|
|
{}
|
|
```
|
|
|
|
Where `user_id` is in the form of `@bob:example.org`.
|
|
|
|
Response:
|
|
|
|
```
|
|
{
|
|
"num_quarantined": 10 # The number of media items successfully quarantined
|
|
}
|
|
```
|
|
|