ทดลองเขียน Go ต่อไปที่ google drive เพื่อวางไฟล์
สิ่งที่ต้องเตรียม
- Google Account ซึ่งจะใช้ของส่วนตัวมาทดลองดูก็ได้
- Google Cloud ก็ใช้ account เดียวกับข้อ 1.
- ติดตั้ง Go ในเครื่องให้เรียบร้อย
เตรียม folder ใน google drive
- New Folder แล้วตั้งชื่อ
- แชร์ Folder นี้ออกมาแบบ public ไปเลย เพื่อทดลอง อย่าเอาไปทำจริงล่ะ
- จด id ที่ แชร์ออกมา มันจะอยู่ใน url
สร้าง Service Account
ไปที่ Google Console
ไปที่เมนู APIs & Services
ถ้ายังไม่มี Project ก็สร้างเลย
กด Enable APIS AND SERVICES
ค้นหาด้วยคำว่า sheets จะเจอ Google Sheets API กดเข้าไปเลย
ไปสร้าง Service Account แล้ว Download json file
เขียนโค้ดสิครับ รออะไร
package main
import (
"io/ioutil"
"log"
"os"
"golang.org/x/oauth2"
"golang.org/x/oauth2/google"
drive "google.golang.org/api/drive/v3"
)
func main() {
// ctx := context.Background()
b, err := ioutil.ReadFile("./ไฟล์ที่donwloadมา.json")
if err != nil {
log.Fatalf("Unable to read client secret file: %v", err)
}
config, err := google.JWTConfigFromJSON(b, drive.DriveScope)
if err != nil {
log.Fatalf("Unable to parse client secret file to config: %v", err)
}
client := config.Client(oauth2.NoContext)
service, err := drive.New(client)
if err != nil {
log.Fatalf("Unable to create Drive service: %v", err)
}
filename := "go.mod"
goFile, err := os.Open(filename)
if err != nil {
log.Fatalf("error opening %q: %v", filename, err)
}
driveFile, err := service.Files.Create(&drive.File{
Name: filename,
Parents: []string{"idที่share_folderมา"},
MimeType: "application/octet-stream",
}).Media(goFile).Do()
log.Printf("Got drive.File, err: %#v, %v", driveFile, err)
}
ในที่นี้ผม upload go.mod
ขึ้นไปโง่ๆเลย และก็อีกเช่นเคย ไม่ได้ capture รูปให้ดู ขออภัยด้วยครับ
Top comments (0)