googleapis / googleapis/google-cloud-node

Support POST signed URLs for the S3-compatible XML multipart API

Open
#8,342 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
3.2k
Forks
712
Avg merge
2d 3h
Merged PRs (30d)
99

Description

### Library Name

google-cloud-storage

### A screenshot that you have tested with "Try this API".

The high-level `file.getSignedUrl({ action, ... })` helper cannot produce
POST-signed URLs needed for the S3-compatible XML multipart upload API:
- CreateMultipartUpload: POST /bucket/object?uploads
- CompleteMultipartUpload: POST /bucket/object?uploadId=

`action` maps deterministically to a method ('write' → PUT, etc.), with
no public way to override to POST(it does via resumable but then it requires us to pass a header in the post request, not satisfying my use case) The internal `URLSigner` class accepts
a `method` parameter directly and works, but it is not part of the
package's top-level exports, making it impractical to consume.

Equivalent SDKs in Python, .NET, Java, and Go all accept `method`
independently of `action`, so this is a Node-specific gap.

### What would you like to see in the library?

Allow me to pass method(specifically POST) as well in the getSignedUrl, or create a new function where I can do this

### Describe alternatives you've considered

I am manually signing the url with the same algorithm in signer.ts

### Additional context/notes

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.