• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang util.FileSizeFormat函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/prasmussen/gdrive/util.FileSizeFormat函数的典型用法代码示例。如果您正苦于以下问题:Golang FileSizeFormat函数的具体用法?Golang FileSizeFormat怎么用?Golang FileSizeFormat使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了FileSizeFormat函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: Quota

func Quota(d *gdrive.Drive, sizeInBytes bool) error {
	info, err := d.About.Get().Do()
	if err != nil {
		return fmt.Errorf("An error occurred: %v\n", err)
	}

	fmt.Printf("Used: %s\n", util.FileSizeFormat(info.QuotaBytesUsed, sizeInBytes))
	fmt.Printf("Free: %s\n", util.FileSizeFormat(info.QuotaBytesTotal-info.QuotaBytesUsed, sizeInBytes))
	fmt.Printf("Total: %s\n", util.FileSizeFormat(info.QuotaBytesTotal, sizeInBytes))
	return nil
}
开发者ID:mberk,项目名称:gdrive,代码行数:11,代码来源:cli.go


示例2: UploadStdin

// Upload file to drive
func UploadStdin(d *gdrive.Drive, input io.ReadCloser, title string, parentId string, share bool, mimeType string, convert bool) error {
	// File instance
	f := &drive.File{Title: title}
	// Set parent (if provided)
	if parentId != "" {
		p := &drive.ParentReference{Id: parentId}
		f.Parents = []*drive.ParentReference{p}
	}
	getRate := util.MeasureTransferRate()

	if convert {
		fmt.Printf("Converting to Google Docs format enabled\n")
	}

	info, err := d.Files.Insert(f).Convert(convert).Media(input).Do()
	if err != nil {
		return fmt.Errorf("An error occurred uploading the document: %v\n", err)
	}

	// Total bytes transferred
	bytes := info.FileSize

	// Print information about uploaded file
	printInfo(d, info, false)
	fmt.Printf("MIME Type: %s\n", mimeType)
	fmt.Printf("Uploaded '%s' at %s, total %s\n", info.Title, getRate(bytes), util.FileSizeFormat(bytes, false))

	// Share file if the share flag was provided
	if share {
		err = Share(d, info.Id)
	}
	return err
}
开发者ID:mberk,项目名称:gdrive,代码行数:34,代码来源:cli.go


示例3: printInfo

func printInfo(d *gdrive.Drive, f *drive.File, sizeInBytes bool) {
	fields := map[string]string{
		"Id":          f.Id,
		"Title":       f.Title,
		"Description": f.Description,
		"Size":        util.FileSizeFormat(f.FileSize, sizeInBytes),
		"Created":     util.ISODateToLocal(f.CreatedDate),
		"Modified":    util.ISODateToLocal(f.ModifiedDate),
		"Owner":       strings.Join(f.OwnerNames, ", "),
		"Md5sum":      f.Md5Checksum,
		"Shared":      util.FormatBool(isShared(d, f.Id)),
		"Parents":     util.ParentList(f.Parents),
	}

	order := []string{
		"Id",
		"Title",
		"Description",
		"Size",
		"Created",
		"Modified",
		"Owner",
		"Md5sum",
		"Shared",
		"Parents",
	}
	util.Print(fields, order)
}
开发者ID:mberk,项目名称:gdrive,代码行数:28,代码来源:cli.go


示例4: Download

// Download file from drive
func Download(d *gdrive.Drive, fileId string, stdout, deleteAfterDownload bool, format string, force bool) error {
	// Get file info
	info, err := d.Files.Get(fileId).Do()
	if err != nil {
		return fmt.Errorf("An error occurred: %v\n", err)
	}

	downloadUrl, extension, err := util.InternalDownloadUrlAndExtension(info, format)
	if err != nil {
		return err
	}

	// Measure transfer rate
	getRate := util.MeasureTransferRate()

	// GET the download url
	res, err := d.Client().Get(downloadUrl)
	if err != nil {
		return fmt.Errorf("An error occurred: %v", err)
	}

	// Close body on function exit
	defer res.Body.Close()

	// Write file content to stdout
	if stdout {
		io.Copy(os.Stdout, res.Body)
		return nil
	}

	fileName := fmt.Sprintf("%s%s", info.Title, extension)

	// Check if file exists
	if !force && util.FileExists(fileName) {
		return fmt.Errorf("An error occurred: '%s' already exists", fileName)
	}

	// Create a new file
	outFile, err := os.Create(fileName)
	if err != nil {
		return fmt.Errorf("An error occurred: %v\n", err)
	}

	// Close file on function exit
	defer outFile.Close()

	// Save file to disk
	bytes, err := io.Copy(outFile, res.Body)
	if err != nil {
		return fmt.Errorf("An error occurred: %s", err)
	}

	fmt.Printf("Downloaded '%s' at %s, total %s\n", fileName, getRate(bytes), util.FileSizeFormat(bytes, false))

	if deleteAfterDownload {
		err = Delete(d, fileId)
	}
	return err
}
开发者ID:mberk,项目名称:gdrive,代码行数:60,代码来源:cli.go


示例5: List

func List(d *gdrive.Drive, query, titleFilter string, maxResults int, sharedStatus, noHeader, includeDocs, sizeInBytes bool) error {
	caller := d.Files.List()

	if maxResults > 0 {
		caller.MaxResults(int64(maxResults))
	}

	if titleFilter != "" {
		q := fmt.Sprintf("title contains '%s'", titleFilter)
		caller.Q(q)
	}

	if query != "" {
		caller.Q(query)
	}

	list, err := caller.Do()
	if err != nil {
		return err
	}

	items := make([]map[string]string, 0, 0)

	for _, f := range list.Items {
		if f.DownloadUrl == "" && !includeDocs {
			if f.MimeType != "application/vnd.google-apps.folder" {
				continue
			}
		}
		if f.Labels.Trashed {
			continue
		}

		items = append(items, map[string]string{
			"Id":      f.Id,
			"Title":   util.TruncateString(f.Title, 40),
			"Size":    util.FileSizeFormat(f.FileSize, sizeInBytes),
			"Created": util.ISODateToLocal(f.CreatedDate),
		})
	}

	columnOrder := []string{"Id", "Title", "Size", "Created"}

	if sharedStatus {
		addSharedStatus(d, items)
		columnOrder = append(columnOrder, "Shared")
	}

	util.PrintColumns(items, columnOrder, 3, noHeader)
	return nil
}
开发者ID:seamusburke54,项目名称:gdrive,代码行数:51,代码来源:cli.go


示例6: uploadFileWorker

func uploadFileWorker(id int, jobs <-chan JobInfo, results chan<- int) error {
	time.Sleep(time.Second)
	for j := range jobs {
		fmt.Println("Accepted job")
		if j.title == "" {
			j.title = filepath.Base(j.inputInfo.Name())
		}

		if j.mimeType == "" {
			j.mimeType = mime.TypeByExtension(filepath.Ext(j.title))
		}

		// File instance
		f := &drive.File{Title: j.title, MimeType: j.mimeType}
		// Set parent (if provided)
		if j.parentId != "" {
			p := &drive.ParentReference{Id: j.parentId}
			f.Parents = []*drive.ParentReference{p}
		}
		getRate := util.MeasureTransferRate()

		if j.convert {
			fmt.Printf("Converting to Google Docs format enabled\n")
		}

		info, err := j.d.Files.Insert(f).Convert(j.convert).ResumableMedia(context.Background(), j.input, j.inputInfo.Size(), j.mimeType).Do()
		if err != nil {
			return fmt.Errorf("An error occurred uploading the document: %v\n", err)
		}

		// Total bytes transferred
		bytes := info.FileSize

		// Print information about uploaded file
		printInfo(j.d, info, false)
		fmt.Printf("MIME Type: %s\n", j.mimeType)
		fmt.Printf("Uploaded '%s' at %s, total %s\n", info.Title, getRate(bytes), util.FileSizeFormat(bytes, false))

		// Placeholder for results
		results <- 1

		// Share file if the share flag was provided
		if j.share {
			err = Share(j.d, info.Id)
		}

	}
	fmt.Println("Worker terminating")
	return nil
}
开发者ID:cmbuck,项目名称:gdrive,代码行数:50,代码来源:cli.go


示例7: uploadFile

func uploadFile(d *gdrive.Drive, input *os.File, inputInfo os.FileInfo, fileId string, title string, parentId string, share bool, mimeType string, convert bool) error {
	if title == "" {
		title = filepath.Base(inputInfo.Name())
	}

	if mimeType == "" {
		mimeType = mime.TypeByExtension(filepath.Ext(title))
	}

	// File instance
	f := &drive.File{Title: title, MimeType: mimeType}
	// Set parent (if provided)
	if parentId != "" {
		p := &drive.ParentReference{Id: parentId}
		f.Parents = []*drive.ParentReference{p}
	}
	getRate := util.MeasureTransferRate()

	if convert {
		fmt.Printf("Converting to Google Docs format enabled\n")
	}

	var info *drive.File
	var err error
	if fileId == "" {
		info, err = d.Files.Insert(f).Convert(convert).ResumableMedia(context.Background(), input, inputInfo.Size(), mimeType).Do()
	} else {
		info, err = d.Files.Update(fileId, f).Convert(convert).Media(input).Do()
	}
	if err != nil {
		return fmt.Errorf("An error occurred uploading the document: %v\n", err)
	}

	// Total bytes transferred
	bytes := info.FileSize

	// Print information about uploaded file
	printInfo(d, info, false)
	fmt.Printf("MIME Type: %s\n", mimeType)
	fmt.Printf("Uploaded '%s' at %s, total %s\n", info.Title, getRate(bytes), util.FileSizeFormat(bytes, false))

	// Share file if the share flag was provided
	if share {
		err = Share(d, info.Id)
	}
	return err
}
开发者ID:occho,项目名称:gdrive,代码行数:47,代码来源:cli.go


示例8: List

func List(d *gdrive.Drive, query, titleFilter string, maxResults int, sharedStatus, noHeader, includeDocs, sizeInBytes bool) error {
	caller := d.Files.List()
	queryList := []string{}

	if maxResults > 0 {
		caller.MaxResults(int64(maxResults))
	}

	if titleFilter != "" {
		q := fmt.Sprintf("title contains '%s'", titleFilter)
		queryList = append(queryList, q)
	}

	if query != "" {
		queryList = append(queryList, query)
	} else {
		// Skip trashed files
		queryList = append(queryList, "trashed = false")

		// Skip google docs
		if !includeDocs {
			for _, mime := range googleMimeTypes {
				q := fmt.Sprintf("mimeType != '%s'", mime)
				queryList = append(queryList, q)
			}
		}
	}

	if len(queryList) > 0 {
		q := strings.Join(queryList, " and ")
		caller.Q(q)
	}

	list, err := caller.Do()
	if err != nil {
		return err
	}

	files := list.Items

	for list.NextPageToken != "" {
		if maxResults > 0 && len(files) > maxResults {
			break
		}

		caller.PageToken(list.NextPageToken)
		list, err = caller.Do()
		if err != nil {
			return err
		}
		files = append(files, list.Items...)
	}

	items := make([]map[string]string, 0, 0)

	for _, f := range files {
		if maxResults > 0 && len(items) >= maxResults {
			break
		}

		items = append(items, map[string]string{
			"Id":      f.Id,
			"Title":   util.TruncateString(f.Title, 40),
			"Size":    util.FileSizeFormat(f.FileSize, sizeInBytes),
			"Created": util.ISODateToLocal(f.CreatedDate),
		})
	}

	columnOrder := []string{"Id", "Title", "Size", "Created"}

	if sharedStatus {
		addSharedStatus(d, items)
		columnOrder = append(columnOrder, "Shared")
	}

	util.PrintColumns(items, columnOrder, 3, noHeader)
	return nil
}
开发者ID:occho,项目名称:gdrive,代码行数:78,代码来源:cli.go



注:本文中的github.com/prasmussen/gdrive/util.FileSizeFormat函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang cmd.RunStdin函数代码示例发布时间:2022-05-28
下一篇:
Golang cli.Context类代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap