code: async def _put_chunk(
              cls, session: aiohttp.ClientSession,
              upload_uri: str, buf: bytes):
          
          # Build the correct headers.
          headers = {
              'Content-Type': 'application/octet-stream',
              'Content-Length': '%s' % len(buf),
          }
          credentials = cls._handler.session.credentials
          if credentials is not None:
              utils.sign(upload_uri, headers, credentials)
  
          # Perform upload of chunk.
          async with await session.put(
                  upload_uri, data=buf, headers=headers) as response:
              if response.status != 200:
                  content = await response.read()
                  request = {
                      "body": buf,
                      "headers": headers,
                      "method": "PUT",
                      "uri": upload_uri,
                  }
                  raise CallError(request, response, content, None)
docs: Upload one chunk to `upload_uri`.