Documentation
¶
Overview ¶
Package drive provides a client for the Google Drive API.
Index ¶
- Constants
- func GetExportMimeType(sourceMimeType, format string) (string, error)
- func GetFileExtension(format string) string
- func GetSupportedExportFormats(sourceMimeType string) []string
- func GetTypeName(mimeType string) string
- func IsGoogleWorkspaceFile(mimeType string) bool
- type Client
- func (c *Client) DownloadFile(ctx context.Context, fileID string) ([]byte, error)
- func (c *Client) ExportFile(ctx context.Context, fileID string, mimeType string) ([]byte, error)
- func (c *Client) GetFile(ctx context.Context, fileID string) (*File, error)
- func (c *Client) ListFiles(ctx context.Context, query string, pageSize int64) ([]*File, error)
- func (c *Client) ListFilesWithScope(ctx context.Context, query string, pageSize int64, scope DriveScope) ([]*File, error)
- func (c *Client) ListSharedDrives(ctx context.Context, pageSize int64) ([]*SharedDrive, error)
- func (c *Client) SearchFileIDs(ctx context.Context, query string, pageSize int64) ([]string, error)
- func (c *Client) StarFile(ctx context.Context, fileID string) error
- func (c *Client) UnstarFile(ctx context.Context, fileID string) error
- type DriveScope
- type File
- type SharedDrive
Constants ¶
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
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
GetFileExtension returns the appropriate file extension for a format
func GetSupportedExportFormats ¶ added in v1.0.23
GetSupportedExportFormats returns the supported export formats for a Google Workspace file type
func GetTypeName ¶
GetTypeName returns a human-readable name for a MIME type
func IsGoogleWorkspaceFile ¶
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 {
// contains filtered or unexported fields
}
Client wraps the Google Drive API service
func (*Client) DownloadFile ¶ added in v1.0.23
DownloadFile downloads a regular (non-Google Workspace) file
func (*Client) ExportFile ¶ added in v1.0.23
ExportFile exports a Google Workspace file to the specified MIME type
func (*Client) ListFiles ¶
ListFiles returns files matching the query (searches My Drive only for backwards compatibility)
func (*Client) ListFilesWithScope ¶ added in v1.0.32
func (c *Client) ListFilesWithScope(ctx context.Context, query string, pageSize int64, scope DriveScope) ([]*File, error)
ListFilesWithScope returns files matching the query within the specified scope
func (*Client) ListSharedDrives ¶ added in v1.0.32
ListSharedDrives returns all shared drives accessible to the user
func (*Client) SearchFileIDs ¶ added in v1.0.37
SearchFileIDs returns only file IDs matching the query (no metadata fetch). This is more efficient than ListFiles when only IDs are needed.
type DriveScope ¶ added in v1.0.32
type DriveScope struct {
AllDrives bool // Search everywhere (My Drive + all shared drives)
MyDriveOnly bool // Restrict to personal My Drive only
DriveID string // Specific shared drive ID
}
DriveScope defines where to search for files
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"`
DriveID string `json:"driveId,omitempty"` // Shared drive ID if file is in a shared drive
}
File represents a Google Drive file with simplified fields for JSON output
type SharedDrive ¶ added in v1.0.32
type SharedDrive struct {
}
SharedDrive represents a Google Shared Drive (formerly Team Drive)