103 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.0 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
 | 
						|
}
 | 
						|
```
 | 
						|
 |