in Sources/OSS/ClientPresigner.swift [146:171]
func presign(
_ request: UploadPartRequest,
_ expiration: Foundation.Date? = nil
) async throws -> PresignResult {
var input = OperationInput(
operationName: "UploadPart",
method: "PUT"
)
input.bucket = try request.bucket.ensureRequired(field: "request.bucket")
input.key = try request.key.ensureRequired(field: "request.key")
if let expiration = expiration {
input.metadata.set(key: AttributeKeys.expirationTime, value: expiration)
}
var req = request
try Serde.serializeInput(&req, &input, [Serde.serializeUploadPart])
let output = try await clientImpl.presignInner(with: &input)
return PresignResult(
method: output.method ?? "",
url: output.url ?? "",
expiration: output.expiration,
signedHeaders: output.signedHeaders
)
}