createOrUpdateAttachments method
Adds an attachment to a piece of content. If the attachment already exists for the content, then the attachment is updated (i.e. a new version of the attachment is created).
Note, you must set a X-Atlassian-Token: nocheck
header on the request
for this method, otherwise it will be blocked. This protects against XSRF
attacks, which is necessary as this method accepts multipart/form-data.
The media type 'multipart/form-data' is defined in RFC 7578. Most client libraries have classes that make it easier to implement multipart posts, like the MultipartEntityBuilder Java class provided by Apache HTTP Components.
Note, according to
RFC 7578,
in the case where the form data is text,
the charset parameter for the "text/plain" Content-Type may be used to
indicate the character encoding used in that part. In the case of this
API endpoint, the comment
body parameter should be sent with
type=text/plain
and charset=utf-8
values. This will force the charset to be UTF-8.
Example: This curl command attaches a file ('example.txt') to a piece of
content (id='123') with a comment and minorEdits
=true. If the
'example.txt'
file already exists, it will update it with a new version of the
attachment.
curl -D-
-u admin:admin
-X PUT
-H 'X-Atlassian-Token: nocheck'
-F 'file=@"example.txt"'
-F 'minorEdit="true"'
-F 'comment="Example attachment comment"; type=text/plain;
charset=utf-8'
http://myhost/rest/api/content/123/child/attachment
Permissions required: Permission to update the content.
Implementation
Future<ContentArray> createOrUpdateAttachments(
{required String id, String? status, required dynamic body}) async {
return ContentArray.fromJson(await _client.send(
'put',
'wiki/rest/api/content/{id}/child/attachment',
pathParameters: {
'id': id,
},
queryParameters: {
if (status != null) 'status': status,
},
body: body,
));
}