Skip to content

Commit

Permalink
update 3.23.3
Browse files Browse the repository at this point in the history
  • Loading branch information
noaccident committed Mar 13, 2023
1 parent 3d12ece commit b9320bf
Show file tree
Hide file tree
Showing 18 changed files with 706 additions and 138 deletions.
15 changes: 7 additions & 8 deletions examples/concurrent_copy_part_sample.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import (
"time"
)

const(
const (
filePathSample string = "/temp/text.txt"
)

Expand Down Expand Up @@ -57,8 +57,8 @@ func (sample ConcurrentCopyPartSample) CreateBucket() {
fmt.Println()
}

func (sample ConcurrentCopyPartSample) checkError(err error){
if err != nil{
func (sample ConcurrentCopyPartSample) checkError(err error) {
if err != nil {
panic(err)
}
}
Expand Down Expand Up @@ -97,7 +97,7 @@ func (sample ConcurrentCopyPartSample) createSampleFile(sampleFilePath string, b
}
}

defer func(){
defer func() {
errMsg := fd.Close()
sample.checkError(errMsg)
}()
Expand Down Expand Up @@ -140,7 +140,7 @@ func (sample ConcurrentCopyPartSample) DoConcurrentCopyPart() {
getObjectMetadataInput.Bucket = sourceBucketName
getObjectMetadataInput.Key = sourceObjectKey
getObjectMetadataOutput, err := sample.obsClient.GetObjectMetadata(getObjectMetadataInput)
if err != nil{
if err != nil {
panic(err)
}

Expand Down Expand Up @@ -187,7 +187,7 @@ func (sample ConcurrentCopyPartSample) DoConcurrentCopyPart() {
} else {
panic(errMsg)
}
}(rangeStart,rangeEnd,partNumber)
}(rangeStart, rangeEnd, partNumber)
}

parts := make([]obs.Part, 0, partCount)
Expand All @@ -213,15 +213,14 @@ func (sample ConcurrentCopyPartSample) DoConcurrentCopyPart() {
sample.doCompleteMultipartUpload(completeMultipartUploadInput)
}

func (sample ConcurrentCopyPartSample) doCompleteMultipartUpload(input *obs.CompleteMultipartUploadInput){
func (sample ConcurrentCopyPartSample) doCompleteMultipartUpload(input *obs.CompleteMultipartUploadInput) {
_, err := sample.obsClient.CompleteMultipartUpload(input)
if err != nil {
panic(err)
}
fmt.Println("Complete multiparts finished")
}


func RunConcurrentCopyPartSample() {
const (
endpoint = "https://your-endpoint"
Expand Down
10 changes: 5 additions & 5 deletions examples/concurrent_upload_part_sample.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ func (sample ConcurrentUploadPartSample) CreateBucket() {
fmt.Println()
}

func (sample ConcurrentUploadPartSample) checkError(err error){
if err != nil{
func (sample ConcurrentUploadPartSample) checkError(err error) {
if err != nil {
panic(err)
}
}
Expand Down Expand Up @@ -93,7 +93,7 @@ func (sample ConcurrentUploadPartSample) createSampleFile(sampleFilePath string,
}
}

defer func(){
defer func() {
errMsg := fd.Close()
sample.checkError(errMsg)
}()
Expand Down Expand Up @@ -172,7 +172,7 @@ func (sample ConcurrentUploadPartSample) DoConcurrentUploadPart(sampleFilePath s
} else {
panic(errMsg)
}
}(partNumber, offset,currPartSize)
}(partNumber, offset, currPartSize)
}

parts := make([]obs.Part, 0, partCount)
Expand All @@ -198,7 +198,7 @@ func (sample ConcurrentUploadPartSample) DoConcurrentUploadPart(sampleFilePath s
sample.doCompleteMultipartUpload(completeMultipartUploadInput)
}

func (sample ConcurrentUploadPartSample) doCompleteMultipartUpload(input *obs.CompleteMultipartUploadInput){
func (sample ConcurrentUploadPartSample) doCompleteMultipartUpload(input *obs.CompleteMultipartUploadInput) {
_, err := sample.obsClient.CompleteMultipartUpload(input)
if err != nil {
panic(err)
Expand Down
139 changes: 139 additions & 0 deletions examples/custom_http_client_sample.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
// Copyright 2019 Huawei Technologies Co.,Ltd.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use
// this file except in compliance with the License. You may obtain a copy of the
// License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software distributed
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.

/**
* This sample demonstrates how to use custom http.Client to upload multiparts to OBS
* using the OBS SDK for Go.
*/
package examples

import (
"fmt"
"net/http"
"obs"
"strings"
)

type SimpleCustumHttpClientSample struct {
bucketName string
objectKey string
location string
obsClient *obs.ObsClient
}
type OurCustomTransport struct {
Transport http.RoundTripper
}

func (t *OurCustomTransport) transport() http.RoundTripper {
if t.Transport != nil {
return t.Transport
}
return http.DefaultTransport
}
func (t *OurCustomTransport) RoundTrip(req *http.Request) (*http.Response, error) {
fmt.Println("do someting")
return t.transport().RoundTrip(req)
}

func newCustumHttpClientSample(ak, sk, endpoint, bucketName, objectKey, location string) *SimpleCustumHttpClientSample {

t := &http.Client{
Transport: &OurCustomTransport{},
}
obsClient, err := obs.New(ak, sk, endpoint, obs.WithHttpClient(t))
if err != nil {
panic(err)
}
return &SimpleCustumHttpClientSample{obsClient: obsClient, bucketName: bucketName, objectKey: objectKey, location: location}
}

func (sample SimpleCustumHttpClientSample) CreateBucket() {
input := &obs.CreateBucketInput{}
input.Bucket = sample.bucketName
input.Location = sample.location
_, err := sample.obsClient.CreateBucket(input)
if err != nil {
panic(err)
}
fmt.Printf("Create bucket:%s successfully!\n", sample.bucketName)
fmt.Println()
}

func (sample SimpleCustumHttpClientSample) InitiateMultipartUpload() string {
input := &obs.InitiateMultipartUploadInput{}
input.Bucket = sample.bucketName
input.Key = sample.objectKey
output, err := sample.obsClient.InitiateMultipartUpload(input)
if err != nil {
panic(err)
}
return output.UploadId
}

func (sample SimpleCustumHttpClientSample) UploadPart(uploadId string) (string, int) {
input := &obs.UploadPartInput{}
input.Bucket = sample.bucketName
input.Key = sample.objectKey
input.UploadId = uploadId
input.PartNumber = 1
input.Body = strings.NewReader("Hello OBS")
output, err := sample.obsClient.UploadPart(input)
if err != nil {
panic(err)
}
return output.ETag, output.PartNumber
}

func (sample SimpleCustumHttpClientSample) CompleteMultipartUpload(uploadId, etag string, partNumber int) {
input := &obs.CompleteMultipartUploadInput{}
input.Bucket = sample.bucketName
input.Key = sample.objectKey
input.UploadId = uploadId
input.Parts = []obs.Part{
obs.Part{PartNumber: partNumber, ETag: etag},
}
_, err := sample.obsClient.CompleteMultipartUpload(input)
if err != nil {
panic(err)
}
fmt.Printf("Upload object %s successfully!\n", sample.objectKey)
}

func RunCustumHttpClientSample() {
const (
endpoint = "https://your-endpoint"
ak = "*** Provide your Access Key ***"
sk = "*** Provide your Secret Key ***"
bucketName = "bucket-test"
objectKey = "object-test"
location = "yourbucketlocation"
)

sample := newCustumHttpClientSample(ak, sk, endpoint, bucketName, objectKey, location)

fmt.Println("Create a new bucket for demo")
sample.CreateBucket()

// Step 1: initiate multipart upload
fmt.Println("Step 1: initiate multipart upload")
uploadId := sample.InitiateMultipartUpload()

// Step 2: upload a part
fmt.Println("Step 2: upload a part")

etag, partNumber := sample.UploadPart(uploadId)

// Step 3: complete multipart upload
fmt.Println("Step 3: complete multipart upload")
sample.CompleteMultipartUpload(uploadId, etag, partNumber)

}

0 comments on commit b9320bf

Please sign in to comment.