func initiateMultipartUpload()

in Sources/OSS/ClientObjectMultipart.swift [9:44]


    func initiateMultipartUpload(
        _ request: InitiateMultipartUploadRequest,
        _ options: OperationOptions? = nil
    ) async throws -> InitiateMultipartUploadResult {
        var input = OperationInput(
            operationName: "InitiateMultipartUpload",
            method: "POST",
            parameters: [
                "uploads": "",
            ]
        )
        input.bucket = try request.bucket.ensureRequired(field: "request.bucket")
        input.key = try request.key.ensureRequired(field: "request.key")

        var req = request

        var customDeserializers: [SerdeSerializeDelegate] = [Serde.serializeInitiateMultipartUpload, Serde.addContentMd5]
        if clientImpl.hasFeatureFlag(FeatureFlag.autoDetectMimeType) {
            customDeserializers.append(Serde.addContentType)
        } else {
            // urlsession add Content-Type:application/x-www-form-urlencoded default
            if req.contentType == nil {
                req.contentType = "application/octet-stream"
            }
        }

        try Serde.serializeInput(&req, &input, customDeserializers)

        var output = try await clientImpl.execute(with: &input, args: options)

        var result = InitiateMultipartUploadResult()

        try Serde.deserializeOutput(&result, &output, [Serde.deserializeInitiateMultipartUpload])

        return result
    }