**快速入门** ############################# 请确认您已经熟悉NOS的基本概念,如Bucket、Object、EndPoint、AccessKeyId和AccessKeySecret等。 本节您将看到如何快速的使用AWS GOLANG SDK,完成常用的操作,上传文件、下载文件等。 常用包 ============================= ====================== ========================================================= 常用类型 备注 ====================== ========================================================= s3.S3 包含了主要的对象操作API ====================== ========================================================= 基本操作 ============================ 上传文件 -------------------------------- 对象(Object)是NOS中最基本的数据单元,您可以把它简单的理解为文件,以下代码可以实现简单的对象上传: .. code:: //content传入文件content的ReadSeeker即可 func putObjectByFile(s3Cleint *s3.S3,bucketName ,objectName string,content io.ReadSeeker){ putObjectInput := &s3.PutObjectInput{ Bucket:aws.String(bucketName), Key:aws.String(objectName), Body:content, } _,err := s3Cleint.PutObject(putObjectInput) if err != nil { fmt.Println("putObject : ",err.Error()) } else { fmt.Println("upload file ok") } } //使用示例 bts,err := ioutil.ReadFile("src/objecttest/main") if err != nil { fmt.Println("read file error : ",err.Error()) return; } putObjectByFile(getS3Client(),bucketName,objectName,bytes.NewReader(bts)) .. attention:: 对象命名规则请参见 `API 手册 对象 <../api/basicConcept.html#id2>`_ 更多的上传文件信息,请参见 `S3-GOLANG-SDK 上传文件 <./uploadobject.html>`_ 下载文件 ------------------------------ 上传对象成功之后,您可以读取它的内容,以下代码可以实现文件的下载: .. code:: params := &s3.GetObjectInput{Bucket:aws.String(bucketName),Key:aws.String(objectName)} resp,err := getS3Client().GetObject(params) 更多的下载文件信息,请参见 `S3-GOLANG-SDK 下载文件 <./downloadobject.html>`_ 列举文件 ------------------------------ 当上传文件成功之后,可以查看桶中包含的文件列表,以下代码展示如何列举桶内的文件: .. code:: resp,err := s3Client.ListObjects(&s3.ListObjectsInput{Bucket:aws.String(SrcBucket), Prefix:aws.String(prefix),Delimiter:aws.String(delimiter),Marker:aws.String(marker)}) if err != nil { fmt.Println(err.Error()) return } else { for _,value := range resp.Contents { fmt.Println(*value.Key) } } .. note:: 上面的代码默认列举100个object 更多的管理文件信息,请参见 `S3-GOLANG-SDK 文件管理 <./managerobject.html>`_ 删除文件 ------------------------------ 文件上传成功后,可以指定删除桶中的文件,以下代码实现桶中文件的删除: .. code:: func deleteObject(s3Client *s3.S3,bucketName,objectName string) { resp,err := s3Client.DeleteObject(&s3.DeleteObjectInput{Bucket:aws.String(bucketName),Key:aws.String(objectName)}) if err != nil { fmt.Println(err.Error()) return } else { fmt.Println(resp) } }