53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package file_store
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								import (
							 | 
						|||
| 
								 | 
							
									"fmt"
							 | 
						|||
| 
								 | 
							
									"github.com/huaweicloud/huaweicloud-sdk-go-obs/obs"
							 | 
						|||
| 
								 | 
							
									"log"
							 | 
						|||
| 
								 | 
							
								)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								type HuaWeiOBS struct {
							 | 
						|||
| 
								 | 
							
									Client     interface{}
							 | 
						|||
| 
								 | 
							
									BucketName string
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								func (e *HuaWeiOBS) Setup(endpoint, accessKeyID, accessKeySecret, BucketName string, options ...ClientOption) error {
							 | 
						|||
| 
								 | 
							
									// 创建ObsClient结构体
							 | 
						|||
| 
								 | 
							
									client, err := obs.New(accessKeyID, accessKeySecret, endpoint)
							 | 
						|||
| 
								 | 
							
									if err != nil {
							 | 
						|||
| 
								 | 
							
										log.Println("Error:", err)
							 | 
						|||
| 
								 | 
							
										return err
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									e.Client = client
							 | 
						|||
| 
								 | 
							
									e.BucketName = BucketName
							 | 
						|||
| 
								 | 
							
									return nil
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// UpLoad 文件上传
							 | 
						|||
| 
								 | 
							
								// yourObjectName 文件路径名称,与objectKey是同一概念,表示断点续传上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg
							 | 
						|||
| 
								 | 
							
								func (e *HuaWeiOBS) UpLoad(yourObjectName string, localFile interface{}) error {
							 | 
						|||
| 
								 | 
							
									// 获取存储空间。
							 | 
						|||
| 
								 | 
							
									input := &obs.PutFileInput{}
							 | 
						|||
| 
								 | 
							
									input.Bucket = e.BucketName
							 | 
						|||
| 
								 | 
							
									input.Key = yourObjectName
							 | 
						|||
| 
								 | 
							
									input.SourceFile = localFile.(string)
							 | 
						|||
| 
								 | 
							
									output, err := e.Client.(*obs.ObsClient).PutFile(input)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if err == nil {
							 | 
						|||
| 
								 | 
							
										fmt.Printf("RequestId:%s\n", output.RequestId)
							 | 
						|||
| 
								 | 
							
										fmt.Printf("ETag:%s, StorageClass:%s\n", output.ETag, output.StorageClass)
							 | 
						|||
| 
								 | 
							
									} else {
							 | 
						|||
| 
								 | 
							
										if obsError, ok := err.(obs.ObsError); ok {
							 | 
						|||
| 
								 | 
							
											fmt.Println(obsError.Code)
							 | 
						|||
| 
								 | 
							
											fmt.Println(obsError.Message)
							 | 
						|||
| 
								 | 
							
										} else {
							 | 
						|||
| 
								 | 
							
											fmt.Println(err)
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									return nil
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								func (e *HuaWeiOBS) GetTempToken() (string, error) {
							 | 
						|||
| 
								 | 
							
									return "", nil
							 | 
						|||
| 
								 | 
							
								}
							 |