func presign()

in Sources/OSS/ClientPresigner.swift [10:36]


    func presign(
        _ request: GetObjectRequest,
        _ expiration: Foundation.Date? = nil
    ) async throws -> PresignResult {
        var input = OperationInput(
            operationName: "GetObject",
            method: "GET"
        )
        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.serializeGetObject])

        let output = try await clientImpl.presignInner(with: &input)

        return PresignResult(
            method: output.method ?? "",
            url: output.url ?? "",
            expiration: output.expiration,
            signedHeaders: output.signedHeaders
        )
    }