func (client *Client) PutObjectWithContext(ctx context.Context, request *PutObjectRequest) (*PutObjectResponse, error) {
	result := &PutObjectResponse{}
	req := &clientRequest{
		BucketName:         request.BucketName,
		ObjectName:         request.ObjectName,
		Data:               request.Data,
		QueryHeaderOptions: request,
		Metadata:           request.Metadata,
		Method:             HTTPPut,
		Result:             result,
	}

	resp, err := client.do(ctx, req)
	if err != nil {
		return result, err
	}
	defer resp.Body.Close()

	return result, nil
}
// PutObjectWithContext will create object with context controlling
PutObjectWithContext will create object with context controlling
// PutObjectWithContext will create object with context controlling
func (client *Client) PutObjectWithContext(ctx context.Context, request *PutObjectRequest) (*PutObjectResponse, error) {
	result := &PutObjectResponse{}
	req := &clientRequest{
		BucketName:         request.BucketName,
		ObjectName:         request.ObjectName,
		Data:               request.Data,
		QueryHeaderOptions: request,
		Metadata:           request.Metadata,
		Method:             HTTPPut,
		Result:             result,
	}
	resp, err := client.do(ctx, req)
	if err != nil {
		return result, err
	}
	defer resp.Body.Close()
	return result, nil
}
func ( client * Client ) PutObjectWithContext ( ctx context . Context , request * PutObjectRequest ) ( * PutObjectResponse , error ) { result := & PutObjectResponse { } req := & clientRequest { BucketName : request . BucketName , ObjectName : request . ObjectName , Data : request . Data , QueryHeaderOptions : request , Metadata : request . Metadata , Method : HTTPPut , Result : result , } resp , err := client . do ( ctx , req ) if err != nil { return result , err } defer resp . Body . Close ( ) return result , nil }
PutObjectWithContext will create object with context controlling
PutObjectWithContext will create object with context controlling