2018-01-31 10:15:59 -05:00
|
|
|
# List all media in a room
|
|
|
|
|
|
|
|
This API gets a list of known media in a room.
|
|
|
|
|
|
|
|
The API is:
|
|
|
|
```
|
2019-05-01 10:18:58 -04:00
|
|
|
GET /_synapse/admin/v1/room/<room_id>/media
|
2018-01-31 10:15:59 -05:00
|
|
|
```
|
2020-06-05 12:31:05 -04:00
|
|
|
To use it, you will need to authenticate by providing an `access_token` for a
|
|
|
|
server admin: see [README.rst](README.rst).
|
2018-01-31 10:15:59 -05:00
|
|
|
|
2020-06-05 12:31:05 -04:00
|
|
|
The API returns a JSON body like the following:
|
2018-01-31 10:15:59 -05:00
|
|
|
```
|
|
|
|
{
|
|
|
|
"local": [
|
|
|
|
"mxc://localhost/xwvutsrqponmlkjihgfedcba",
|
|
|
|
"mxc://localhost/abcdefghijklmnopqrstuvwx"
|
|
|
|
],
|
|
|
|
"remote": [
|
|
|
|
"mxc://matrix.org/xwvutsrqponmlkjihgfedcba",
|
|
|
|
"mxc://matrix.org/abcdefghijklmnopqrstuvwx"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
2019-12-03 13:20:39 -05:00
|
|
|
|
2020-01-13 13:10:43 -05:00
|
|
|
# Quarantine media
|
2019-12-03 13:20:39 -05:00
|
|
|
|
2020-01-13 13:10:43 -05:00
|
|
|
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.
|
2019-12-03 13:20:39 -05:00
|
|
|
|
2020-01-13 13:10:43 -05:00
|
|
|
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:
|
2019-12-03 13:20:39 -05:00
|
|
|
|
|
|
|
```
|
2020-01-13 13:10:43 -05:00
|
|
|
POST /_synapse/admin/v1/media/quarantine/<server_name>/<media_id>
|
2019-12-03 13:20:39 -05:00
|
|
|
|
|
|
|
{}
|
|
|
|
```
|
|
|
|
|
2020-01-13 13:10:43 -05:00
|
|
|
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
|
|
|
|
}
|
|
|
|
```
|