drive

package
v1.0.24 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MimeTypeFolder       = "application/vnd.google-apps.folder"
	MimeTypeDocument     = "application/vnd.google-apps.document"
	MimeTypeSpreadsheet  = "application/vnd.google-apps.spreadsheet"
	MimeTypePresentation = "application/vnd.google-apps.presentation"
	MimeTypeDrawing      = "application/vnd.google-apps.drawing"
	MimeTypeForm         = "application/vnd.google-apps.form"
	MimeTypeSite         = "application/vnd.google-apps.site"
	MimeTypeShortcut     = "application/vnd.google-apps.shortcut"
)

MIME type constants for Google Workspace files

Variables

This section is empty.

Functions

func GetExportMimeType added in v1.0.23

func GetExportMimeType(sourceMimeType, format string) (string, error)

GetExportMimeType returns the MIME type for exporting a Google Workspace file to the specified format. Returns an error if the format is not supported.

func GetFileExtension added in v1.0.23

func GetFileExtension(format string) string

GetFileExtension returns the appropriate file extension for a format

func GetSupportedExportFormats added in v1.0.23

func GetSupportedExportFormats(sourceMimeType string) []string

GetSupportedExportFormats returns the supported export formats for a Google Workspace file type

func GetTypeName

func GetTypeName(mimeType string) string

GetTypeName returns a human-readable name for a MIME type

func IsGoogleWorkspaceFile

func IsGoogleWorkspaceFile(mimeType string) bool

IsGoogleWorkspaceFile returns true if the MIME type is a Google Workspace file that requires export rather than direct download

Types

type Client

type Client struct {
	Service *drive.Service
}

Client wraps the Google Drive API service

func NewClient

func NewClient(ctx context.Context) (*Client, error)

NewClient creates a new Drive client with OAuth2 authentication

func (*Client) DownloadFile added in v1.0.23

func (c *Client) DownloadFile(fileID string) ([]byte, error)

DownloadFile downloads a regular (non-Google Workspace) file

func (*Client) ExportFile added in v1.0.23

func (c *Client) ExportFile(fileID string, mimeType string) ([]byte, error)

ExportFile exports a Google Workspace file to the specified MIME type

func (*Client) GetFile

func (c *Client) GetFile(fileID string) (*File, error)

GetFile retrieves a single file by ID

func (*Client) ListFiles

func (c *Client) ListFiles(query string, pageSize int64) ([]*File, error)

ListFiles returns files matching the query

type DriveClientInterface

type DriveClientInterface interface {
	// ListFiles returns files matching the query
	ListFiles(query string, pageSize int64) ([]*File, error)

	// GetFile retrieves a single file by ID
	GetFile(fileID string) (*File, error)

	// DownloadFile downloads a regular (non-Google Workspace) file
	DownloadFile(fileID string) ([]byte, error)

	// ExportFile exports a Google Workspace file to the specified MIME type
	ExportFile(fileID string, mimeType string) ([]byte, error)
}

DriveClientInterface defines the interface for Drive client operations. This enables unit testing through mock implementations.

type File

type File struct {
	ID           string    `json:"id"`
	Name         string    `json:"name"`
	MimeType     string    `json:"mimeType"`
	Size         int64     `json:"size,omitempty"`
	CreatedTime  time.Time `json:"createdTime,omitempty"`
	ModifiedTime time.Time `json:"modifiedTime,omitempty"`
	Parents      []string  `json:"parents,omitempty"`
	Owners       []string  `json:"owners,omitempty"`
	WebViewLink  string    `json:"webViewLink,omitempty"`
	Shared       bool      `json:"shared"`
}

File represents a Google Drive file with simplified fields for JSON output

func ParseFile

func ParseFile(f *drive.File) *File

ParseFile converts a Google Drive API File to our simplified File struct

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL