updateAttachmentData method

Future<Content> updateAttachmentData({
  1. required String id,
  2. required String attachmentId,
  3. required dynamic body,
})

Updates the binary data of an attachment, given the attachment ID, and optionally the comment and the minor edit field.

This method is essentially the same as Create or update attachments, except that it matches the attachment ID rather than the name.

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 updates an attachment (id='att456') that is attached to a piece of content (id='123') with a comment and minorEdits=true.

curl -D-
  -u admin:admin
  -X POST
  -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/att456/data

Permissions required: Permission to update the content.

Implementation

Future<Content> updateAttachmentData(
    {required String id,
    required String attachmentId,
    required dynamic body}) async {
  return Content.fromJson(await _client.send(
    'post',
    'wiki/rest/api/content/{id}/child/attachment/{attachmentId}/data',
    pathParameters: {
      'id': id,
      'attachmentId': attachmentId,
    },
    body: body,
  ));
}