generateUploadUrl method

  1. @override
Future<GenerateUploadUrlResponse> generateUploadUrl(
  1. GenerateUploadUrlRequest request
)
override

Returns a signed URL for uploading a function source code. For more information about the signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls. Once the function source code upload is complete, the used signed URL should be provided in CreateFunction or UpdateFunction request as a reference to the function source code.

When uploading source code to the generated signed URL, please follow these restrictions:

  • Source file type should be a zip file.
  • No credentials should be attached - the signed URLs provide access to the target bucket using internal service identity; if credentials were attached, the identity from the credentials would be used, but that identity does not have permissions to upload files to the URL.

When making a HTTP PUT request, specify this header:

  • content-type: application/zip

Do not specify this header:

  • Authorization: Bearer YOUR_TOKEN

Throws a http.ClientException if there were problems communicating with the API service. Throws a ServiceException if the API method failed for any reason.

Implementation

@override
Future<GenerateUploadUrlResponse> generateUploadUrl(
  GenerateUploadUrlRequest request,
) async {
  if (isClosed) throw StateError('Service is closed');

  if (_generateUploadUrl case final generateUploadUrl?) {
    return generateUploadUrl(request);
  }
  throw UnsupportedError('generateUploadUrl');
}