onedrive

package module
v0.0.0-...-4b874e5 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2015 License: MIT Imports: 8 Imported by: 0

README

go-onedrive Build Status Coverage Status

go-onedrive is a Go client library for accessing the Microsoft OneDrive API.

Documentation

https://godoc.org/github.com/ggordan/go-onedrive

Example

Get an access token via the token flow or the code flow...

TODO

  • Drives
  • Get Default Drive
  • Get Drive
  • List all available drives
  • Items
  • Create
    • Create folder
  • Copy
    • Copy file/folder
    • Async job to track progress
  • Delete
  • Download
  • List children
  • Search
  • Move
  • Upload
    • Simple item upload <100MB
    • Resumable item upload
    • Upload from URL

License

MIT

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrFileTooLarge = errors.New("file is too large for simple upload")
)

Functions

This section is empty.

Types

type AsyncJob

type AsyncJob struct {
	*OneDrive
	Location string
}

AsyncJob stores the location (URL) which can be pinged with CheckStatus() to check progress of an Async job.

func (AsyncJob) CheckStatus

func (aj AsyncJob) CheckStatus() (*AsyncJobStatus, error)

CheckStatus returns a new AsyncJobStatus

type AsyncJobStatus

type AsyncJobStatus struct {
	Operation          string  `json:"operation"`
	PercentageComplete float64 `json:"percentageComplete"`
	Status             string  `json:"status"`
}

AsyncJobStatus provides information on the status of a asynchronous job progress.

type AudioFacet

type AudioFacet struct {
	Album             string `json:"album"`
	AlbumArtist       string `json:"albumArtist"`
	Artist            string `json:"artist"`
	Bitrate           int64  `json:"bitrate"`
	Composers         string `json:"composers"`
	Copyright         string `json:"copyright"`
	Disc              int    `json:"disc"`
	DiscCount         int    `json:"discCount"`
	Duration          int64  `json:"duration"`
	Genre             string `json:"genre"`
	HasDRM            bool   `json:"hasDrm"`
	IsVariableBitrate bool   `json:"isVariableBitrate"`
	Title             string `json:"title"`
	Track             int    `json:"track"`
	TrackCount        int    `json:"trackCount"`
	Year              int    `json:"year"`
}

The AudioFacet groups audio-related data on OneDrive into a single structure. It is available on the audio property of Item resources that have associated audio. See: http://onedrive.github.io/facets/audio_facet.htm

type DeletedFacet

type DeletedFacet struct{}

The DeletedFacet indicates that the item on OneDrive has been deleted. In this version of the API, the presence (non-null) of the facet value indicates that the file was deleted. A null (or missing) value indicates that the file is not deleted. See: http://onedrive.github.io/facets/deleted_facet.htm

type Drive

type Drive struct {
	ID        string       `json:"id"`
	DriveType string       `json:"driveType"`
	Owner     *IdentitySet `json:"owner"`
	Quota     *Quota       `json:"quota"`
	// Relationships
	Items   *Items `json:"items"`
	Root    *Item  `json:"root"`
	Special *Items `json:"special"`
	Shares  *Items `json:"shares"`
}

The Drive resource represents a drive in OneDrive. It provides information about the owner of the drive, total and available storage space, and exposes a collection of all the Items contained within the drive. See: http://onedrive.github.io/resources/drive.htm

type DriveService

type DriveService struct {
	*OneDrive
}

DriveService manages the communication with Drive related API endpoints.

func (*DriveService) Get

func (ds *DriveService) Get(driveID string) (*Drive, *http.Response, error)

Get returns a Drive for the authenticated user. If no driveID is provided the users default Drive is returned. A user will always have at least one Drive available -- the default Drive.

func (*DriveService) GetDefault

func (ds *DriveService) GetDefault() (*Drive, *http.Response, error)

GetDefault is a convenience function to return the users default Drive

func (*DriveService) ListAll

func (ds *DriveService) ListAll() (*Drives, *http.Response, error)

ListAll returns all the Drives available to the authenticated user

func (*DriveService) ListChildren

func (ds *DriveService) ListChildren(driveID string) (*Items, *http.Response, error)

ListChildren returns a collection of all the Items under the Drive root. If no driveID is specified, the children from the root drive are retrieved.

type Drives

type Drives struct {
	Collection []*Drive `json:"value"`
}

Drives represents a collection of Drives

type Error

type Error struct {
	// contains filtered or unexported fields
}

The Error type defines the basic structure of errors that are returned from the OneDrive API. See: http://onedrive.github.io/misc/errors.htm

func (Error) Error

func (e Error) Error() string

type FileFacet

type FileFacet struct {
	MimeType *string      `json:"mimeType,omitempty"`
	Hashes   *HashesFacet `json:"hashes,omitempty"`
}

The FileFacet groups file-related data on OneDrive into a single structure. It is available on the file property of Item resources that represent files. See: http://onedrive.github.io/facets/file_facet.htm

type FolderFacet

type FolderFacet struct {
	ChildCount int64 `json:"childCount"`
}

The FolderFacet groups folder-related data on OneDrive into a single structure. It is available on the folder property of Item resources that represent folders. See: http://onedrive.github.io/facets/folder_facet.htm

type HashesFacet

type HashesFacet struct {
	Sha1Hash  string `json:"sha1Hash"`
	Crc32Hash string `json:"crc32Hash"`
}

The HashesFacet groups different types of hashes into a single structure, for an item on OneDrive. See: http://onedrive.github.io/facets/hashes_facet.htm

type Identity

type Identity struct {
	ID          string `json:"id"`
	DisplayName string `json:"displayName"`
}

The Identity type represents an identity of an actor. For example, and actor can be a user, device, or application. See: http://onedrive.github.io/resources/identity.htm

type IdentitySet

type IdentitySet struct {
	User        *Identity `json:"user"`
	Application *Identity `json:"application"`
	Device      *Identity `json:"device"`
}

The IdentitySet type is a keyed collection of Identity objects. It is used to represent a set of identities associated with various events for an item, such as created by or last modified by. See: http://onedrive.github.io/resources/identitySet.htm

type ImageFacet

type ImageFacet struct {
	Width  int `json:"width"`
	Height int `json:"height"`
}

The ImageFacet groups image-related data on OneDrive into a single structure. See: http://onedrive.github.io/facets/image_facet.htm

type Item

type Item struct {
	ID                   string         `json:"id"`
	Name                 string         `json:"name"`
	ETag                 string         `json:"eTag"`
	CTag                 string         `json:"cTag"`
	CreatedBy            *IdentitySet   `json:"createdBy"`
	LastModifiedBy       *IdentitySet   `json:"lastModifiedBy"`
	CreatedDateTime      time.Time      `json:"createdDateTime"`
	LastModifiedDateTime time.Time      `json:"lastModifiedDateTime"`
	Size                 int64          `json:"size"`
	ParentReference      *ItemReference `json:"parentReference"`
	WebURL               string         `json:"webUrl"`
	File                 *FileFacet     `json:"file"`
	Folder               *FolderFacet   `json:"folder"`
	Image                *ImageFacet    `json:"image"`
	Photo                *PhotoFacet    `json:"photo"`
	Audio                *AudioFacet    `json:"audio"`
	Video                *VideoFacet    `json:"video"`
	Location             *LocationFacet `json:"location"`
	Deleted              *DeletedFacet  `json:"deleted"`
	// Instance attributes
	ConflictBehaviour string `json:"@name.conflictBehavior"`
	DownloadURL       string `json:"@content.downloadUrl"`
	SourceURL         string `json:"@content.sourceUrl"`
	// Relationships
	Content    []byte        `json:"content"`
	Children   []*Item       `json:"children"`
	Thumbnails *ThumbnailSet `json:"thumbnails"`
}

The Item resource type represents metadata for an item in OneDrive. All top-level filesystem objects in OneDrive are Item resources. If an item is a Folder or File facet, the Item resource will contain a value for either the folder or file property, respectively. See: http://onedrive.github.io/resources/item.htm

type ItemReference

type ItemReference struct {
	DriveID string `json:"driveId"`
	ID      string `json:"id"`
	Path    string `json:"path"`
}

The ItemReference type groups data needed to reference a OneDrive item across the service into a single structure. See: http://onedrive.github.io/resources/itemReference.htm

type ItemService

type ItemService struct {
	*OneDrive
}

ItemService manages the communication with Item related API endpoints

func (ItemService) Copy

func (is ItemService) Copy(itemID, name string, parentReference ItemReference) (*Item, *http.Response, error)

Move changes the parent folder for a OneDrive Item resource. See: http://onedrive.github.io/items/move.htm

func (*ItemService) CreateFolder

func (is *ItemService) CreateFolder(parentID, folderName string) (*Item, *http.Response, error)

CreateFolder creates a new folder within the parent.

func (*ItemService) Delete

func (is *ItemService) Delete(itemID, eTag string) (bool, *http.Response, error)

Delete removed a OneDrive item by using its ID. Note that deleting items using this method will move the items to the Recycle Bin, instead of permanently deleting them. See: http://onedrive.github.io/items/delete.htm

func (*ItemService) Get

func (is *ItemService) Get(itemID string) (*Item, *http.Response, error)

Get returns an item with the specified ID.

func (*ItemService) GetDefaultDriveRootFolder

func (is *ItemService) GetDefaultDriveRootFolder() (*Item, *http.Response, error)

GetDefaultDriveRootFolder is a convenience function to return the root folder of the users default Drive

func (*ItemService) ListChildren

func (is *ItemService) ListChildren(itemID string) (*Items, *http.Response, error)

ListChildren returns a collection of all the Items under an Item

func (ItemService) Move

func (is ItemService) Move(itemID, parentReference ItemReference) (*Item, *http.Response, error)

Move changes the parent folder for a OneDrive Item resource. See: http://onedrive.github.io/items/move.htm

func (ItemService) SimpleUpload

func (is ItemService) SimpleUpload(folderID string, file *os.File) (*Item, *http.Response, error)

SimpleUpload allows you to provide the contents of a new file or update the contents of an existing file in a single API call. This method only supports files up to 100MB in size. For larger files use ResumableUpload(). See: https://dev.onedrive.com/items/upload_put.htm

func (ItemService) Update

func (is ItemService) Update(item *Item, ifMatch bool) (*Item, *http.Response, error)

Move changes the parent folder for a OneDrive Item resource. See: http://onedrive.github.io/items/move.htm

func (*ItemService) UploadFromURL

func (is *ItemService) UploadFromURL(parentID, name, webURL string) (*Item, *http.Response, error)

UploadFromURL allows your app to upload an item to OneDrive by providing a URL. OneDrive will download the file directly from a remote server so your app doesn't have to upload the file's bytes. See: http://onedrive.github.io/items/upload_url.htm

type Items

type Items struct {
	Collection []*Item `json:"value"`
}

Items represents a collection of Items

type LocationFacet

type LocationFacet struct {
	Altitude  float64 `json:"altitude"`
	Latitude  float64 `json:"latitude"`
	Longitude float64 `json:"longitude"`
}

The LocationFacet groups geographic location-related data on OneDrive into a single structure. See: http://onedrive.github.io/facets/location_facet.htm

type OneDrive

type OneDrive struct {
	Client *http.Client
	// When debug is set to true, the JSON response is formatted for better readability
	Debug   bool
	BaseURL string
	// Services
	Drives *DriveService
	Items  *ItemService
	// contains filtered or unexported fields
}

OneDrive is the entry point for the client. It manages the communication with Microsoft OneDrive API

func NewOneDrive

func NewOneDrive(c *http.Client, debug bool) *OneDrive

NewOneDrive returns a new OneDrive client to enable you to communicate with the API

type PhotoFacet

type PhotoFacet struct {
	TakenDateTime       time.Time `json:"takenDateTime"`
	CameraMake          string    `json:"cameraMake"`
	CameraModel         string    `json:"cameraModel"`
	FNumber             float64   `json:"fNumber"`
	ExposureDenominator float64   `json:"exposureDenominator"`
	ExposureNumerator   float64   `json:"exposureNumerator"`
	FocalLength         float64   `json:"focalLength"`
	ISO                 int       `json:"iso"`
}

The PhotoFacet groups photo-related data on OneDrive, for example, EXIF metadata, into a single structure. See: http://onedrive.github.io/facets/photo_facet.htm

type Quota

type Quota struct {
	Total     int64  `json:"total"`
	Used      int64  `json:"used"`
	Remaining int64  `json:"remaining"`
	Deleted   int64  `json:"deleted"`
	State     string `json:"state"`
}

The Quota facet groups storage space quota-related information on OneDrive into a single structure. See: http://onedrive.github.io/facets/quotainfo_facet.htm

type SharingLink struct {
	Token       string    `json:"token"`
	WebURL      string    `json:"webUrl"`
	Type        string    `json:"type"`
	Application *Identity `json:"application"`
}

The SharingLink type groups sharing link-related data on OneDrive into a single structure. See: http://onedrive.github.io/facets/sharinglink_facet.htm

type SpecialFolder

type SpecialFolder struct {
	Name string `json:"name"`
}

The SpecialFolder facet provides information about how a folder on OneDrive can be accessed via the special folders collection. See: http://onedrive.github.io/facets/jumpinfo_facet.htm

type Thumbnail

type Thumbnail struct {
	Width  int    `json:"width"`
	Height int    `json:"height"`
	URL    string `json:"url"`
	// Relationships
	Content []byte `json:"content"`
}

The Thumbnail resource type represents a thumbnail for an image, video, document, or any file or folder on OneDrive that has a graphical representation. See: http://onedrive.github.io/resources/thumbnail.htm

type ThumbnailSet

type ThumbnailSet struct {
	ID     string     `json:"id"`
	Small  *Thumbnail `json:"small"`
	Medium *Thumbnail `json:"medium"`
	Large  *Thumbnail `json:"large"`
}

The ThumbnailSet type is a keyed collection of Thumbnail objects. It is used to represent a set of thumbnails associated with a single file on OneDrive. See: http://onedrive.github.io/resources/thumbnailSet.htm

type VideoFacet

type VideoFacet struct {
	Bitrate  int64 `json:"bitrate"`
	Duration int64 `json:"duration"`
	Height   int64 `json:"height"`
	Width    int64 `json:"width"`
}

The VideoFacet groups video-related data on OneDrive into a single complex type. See: http://onedrive.github.io/facets/video_facet.htm

Jump to

Keyboard shortcuts

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