Documentation ¶
Index ¶
- Constants
- func AuthorizeAccount(b2BucketKeyId, b2BucketKey string) (Service, AuthV3, error)
- func AuthorizeAccountV2(b2BucketKeyId, b2BucketKey string) (Service, AuthV2, error)
- func InitAuthorization(b2BucketKeyId, b2BucketKey, authURL string) (io.ReadCloser, error)
- func UploadFilePart(b2PartInfo FilePartInfo, chunkNum int, checksum string, contents []byte) error
- type AuthV2
- type AuthV3
- type File
- type FileInfo
- type FileList
- type FileListItem
- type FilePartInfo
- type LargeFile
- type Service
- func (b2Service Service) CancelLargeFile(fileID string) (bool, error)
- func (b2Service Service) DeleteFile(b2ID string, name string) bool
- func (b2Service Service) DownloadById(id string) ([]byte, error)
- func (b2Service Service) FinishLargeFile(fileID string, checksums []string) (LargeFile, error)
- func (b2Service Service) GetUploadPartURL(fileID string) (FilePartInfo, error)
- func (b2Service Service) GetUploadURL(bucketID string) (FileInfo, error)
- func (b2Service Service) ListAllFiles(bucketID string) (FileList, error)
- func (b2Service Service) ListFiles(bucketID string, count int, startName string, startID string) (FileList, error)
- func (b2Service Service) ListNFiles(bucketID string, count int) (FileList, error)
- func (b2Service Service) PartialDownloadById(id string, begin int, end int) ([]byte, error)
- func (b2Service Service) StartLargeFile(filename string, bucketID string) (StartFile, error)
- type StartFile
Constants ¶
const APICancelLargeFile = "b2_cancel_large_file"
const APIDeleteFile = "b2_delete_file_version"
const APIDownloadById string = "b2_download_file_by_id"
const APIFinishLargeFile = "b2_finish_large_file"
const APIGetUploadPartURL string = "b2_get_upload_part_url"
const APIGetUploadURL string = "b2_get_upload_url"
const APIListFileVersions = "b2_list_file_versions"
const APIStartLargeFile string = "b2_start_large_file"
const AuthURLV2 string = "https://api.backblazeb2.com/b2api/v2/b2_authorize_account"
const AuthURLV3 string = "https://api.backblazeb2.com/b2api/v3/b2_authorize_account"
Variables ¶
This section is empty.
Functions ¶
func AuthorizeAccount ¶
func AuthorizeAccountV2 ¶ added in v1.3.0
func InitAuthorization ¶ added in v1.3.0
func InitAuthorization(b2BucketKeyId, b2BucketKey, authURL string) (io.ReadCloser, error)
func UploadFilePart ¶
func UploadFilePart( b2PartInfo FilePartInfo, chunkNum int, checksum string, contents []byte, ) error
UploadFilePart uploads a single chunk of file data to the URL provided by GetUploadPartURL. Each subsequent chunk should increment chunkNum, with the first chunk starting at 1 (not 0). Each chunk should be provided with a SHA1 checksum as well.
Types ¶
type AuthV2 ¶ added in v1.3.0
type AuthV2 struct { AbsoluteMinimumPartSize int `json:"absoluteMinimumPartSize"` AccountID string `json:"accountId"` Allowed struct { BucketID string `json:"bucketId"` BucketName string `json:"bucketName"` Capabilities []string `json:"capabilities"` NamePrefix any `json:"namePrefix"` } `json:"allowed"` APIURL string `json:"apiUrl"` AuthorizationToken string `json:"authorizationToken"` DownloadURL string `json:"downloadUrl"` RecommendedPartSize int `json:"recommendedPartSize"` S3APIURL string `json:"s3ApiUrl"` }
type AuthV3 ¶ added in v1.3.0
type AuthV3 struct { AccountID string `json:"accountId"` APIInfo struct { StorageAPI struct { AbsoluteMinimumPartSize int `json:"absoluteMinimumPartSize"` APIURL string `json:"apiUrl"` BucketID any `json:"bucketId"` BucketName any `json:"bucketName"` Capabilities []string `json:"capabilities"` DownloadURL string `json:"downloadUrl"` InfoType string `json:"infoType"` NamePrefix any `json:"namePrefix"` RecommendedPartSize int `json:"recommendedPartSize"` S3APIURL string `json:"s3ApiUrl"` } `json:"storageApi"` GroupsAPI struct { Capabilities []string `json:"capabilities"` GroupsAPIURL string `json:"groupsApiUrl"` InfoType string `json:"infoType"` } `json:"groupsApi"` } `json:"apiInfo"` ApplicationKeyExpirationTimestamp any `json:"applicationKeyExpirationTimestamp"` AuthorizationToken string `json:"authorizationToken"` }
type File ¶
type File struct { AccountID string `json:"accountId"` Action string `json:"action"` BucketID string `json:"bucketId"` ContentLength int `json:"contentLength"` ContentMd5 string `json:"contentMd5"` ContentSha1 string `json:"contentSha1"` ContentType string `json:"contentType"` FileID string `json:"fileId"` FileInfo struct { } `json:"fileInfo"` FileName string `json:"fileName"` FileRetention struct { IsClientAuthorizedToRead bool `json:"isClientAuthorizedToRead"` Value any `json:"value"` } `json:"fileRetention"` LegalHold struct { IsClientAuthorizedToRead bool `json:"isClientAuthorizedToRead"` Value any `json:"value"` } `json:"legalHold"` ServerSideEncryption struct { Algorithm string `json:"algorithm"` Mode string `json:"mode"` } `json:"serverSideEncryption"` UploadTimestamp int64 `json:"uploadTimestamp"` }
File represents the data returned by UploadFile
func UploadFile ¶
func UploadFile( b2Info FileInfo, filename string, checksum string, contents []byte, ) (File, error)
UploadFile uploads file byte content to B2 alongside a name for the file and a SHA1 checksum for the byte content. It returns a File object, which contains fields such as FileID and ContentLength which can be stored and used later to download the file.
type FileInfo ¶
type FileInfo struct { BucketID string `json:"bucketId"` UploadURL string `json:"uploadUrl"` AuthorizationToken string `json:"authorizationToken"` Dummy bool StorageMaximum int }
FileInfo represents the data returned by GetUploadURL
type FileList ¶
type FileList struct { Files []FileListItem `json:"files"` NextFileName string `json:"nextFileName"` NextFileID string `json:"nextFileId"` }
type FileListItem ¶
type FileListItem struct { AccountID string `json:"accountId"` Action string `json:"action"` BucketID string `json:"bucketId"` ContentLength int `json:"contentLength"` ContentSha1 string `json:"contentSha1"` ContentMd5 string `json:"contentMd5"` ContentType string `json:"contentType"` FileID string `json:"fileId"` FileInfo struct { SrcLastModifiedMillis string `json:"src_last_modified_millis"` } `json:"fileInfo"` FileName string `json:"fileName"` FileRetention struct { IsClientAuthorizedToRead bool `json:"isClientAuthorizedToRead"` Value struct { Mode string `json:"mode"` RetainUntilTimestamp string `json:"retainUntilTimestamp"` } `json:"value"` } `json:"fileRetention"` LegalHold struct { IsClientAuthorizedToRead bool `json:"isClientAuthorizedToRead"` Value string `json:"value"` } `json:"legalHold"` ReplicationStatus string `json:"replicationStatus"` ServerSideEncryption struct { Algorithm string `json:"algorithm"` Mode string `json:"mode"` } `json:"serverSideEncryption"` UploadTimestamp int `json:"uploadTimestamp"` }
type FilePartInfo ¶
type FilePartInfo struct { FileID string `json:"fileId"` UploadURL string `json:"uploadUrl"` AuthorizationToken string `json:"authorizationToken"` Dummy bool StorageMaximum int }
FilePartInfo represents the data returned by GetUploadPartURL
type LargeFile ¶
type LargeFile struct { AccountID string `json:"accountId"` Action string `json:"action"` BucketID string `json:"bucketId"` ContentLength int `json:"contentLength"` ContentMd5 any `json:"contentMd5"` ContentSha1 string `json:"contentSha1"` ContentType string `json:"contentType"` FileID string `json:"fileId"` FileInfo struct { } `json:"fileInfo"` FileName string `json:"fileName"` FileRetention struct { IsClientAuthorizedToRead bool `json:"isClientAuthorizedToRead"` Value any `json:"value"` } `json:"fileRetention"` LegalHold struct { IsClientAuthorizedToRead bool `json:"isClientAuthorizedToRead"` Value any `json:"value"` } `json:"legalHold"` ServerSideEncryption struct { Algorithm string `json:"algorithm"` Mode string `json:"mode"` } `json:"serverSideEncryption"` UploadTimestamp int64 `json:"uploadTimestamp"` }
LargeFile represents the file object created by FinishLargeFile
type Service ¶ added in v1.3.0
type Service struct { APIURL string AuthorizationToken string APIVersion string Dummy bool LocalPath string StorageMaximum int }
func AuthorizeDummyAccount ¶
AuthorizeDummyAccount allows using the B2 library as normal, but having all files saved and retrieved from a specific folder on the machine.
func AuthorizeLimitedDummyAccount ¶
AuthorizeLimitedDummyAccount functions the same as AuthorizeDummyAccount, but imposes an additional limitation for the total size of the directory specified in the "path" variable.
func (Service) CancelLargeFile ¶ added in v1.3.0
CancelLargeFile cancels an in-progress large file upload and deletes the partial file from the B2 bucket. Returns true if the file was successfully deleted, otherwise false. Requires the fileID returned from StartLargeFile.
func (Service) DeleteFile ¶ added in v1.3.0
DeleteFile removes a file from B2 using the file's ID and name. Both fields are required, and are provided when a file finishes uploading.
func (Service) DownloadById ¶ added in v1.3.0
DownloadById downloads an entire file (regardless of size) from B2.
func (Service) FinishLargeFile ¶ added in v1.3.0
FinishLargeFile completes the chunked upload process. The FileID from calling StartLargeFile should be used here, and all checksums from UploadFilePart should be passed a string-ified array. For example: "['checksum1', 'checksum2']"
func (Service) GetUploadPartURL ¶ added in v1.3.0
func (b2Service Service) GetUploadPartURL(fileID string) (FilePartInfo, error)
GetUploadPartURL generates a URL and token for uploading individual chunks of a file to B2. It requires a StartFile struct returned by StartLargeFile, which contains the unique file ID for this new file.
func (Service) GetUploadURL ¶ added in v1.3.0
GetUploadURL returns a FileInfo struct containing the URL to use for uploading a file, the ID of the bucket the file will be put in, and a token for authenticating the upload request.
func (Service) ListAllFiles ¶ added in v1.3.0
ListAllFiles is a helper function for simply fetching all available files in the bucket. If more than 100 files exist, the FileList struct will contain NextFileName and NextFileID fields that can be used with ListFiles to fetch the remainder.
func (Service) ListFiles ¶ added in v1.3.0
func (b2Service Service) ListFiles( bucketID string, count int, startName string, startID string, ) (FileList, error)
ListFiles lists all files in the specified bucket up to a maximum of `count`, starting with `startName` and, optionally, `startID`. If count is set to an invalid or negative value, the default number of files returned is 100. If startName or startID are not set, the bucket will list all files
func (Service) ListNFiles ¶ added in v1.3.0
ListNFiles is similar to ListAllFiles, but allows explicitly stating how many files you want returned in the response.
func (Service) PartialDownloadById ¶ added in v1.3.0
PartialDownloadById downloads a file from B2 with a specified begin and end byte. For example, setting begin to 0 and end to 99 will download only the first 99 bytes of the file.
type StartFile ¶
type StartFile struct { AccountID string `json:"accountId"` Action string `json:"action"` BucketID string `json:"bucketId"` ContentLength int `json:"contentLength"` ContentSha1 string `json:"contentSha1"` ContentType string `json:"contentType"` FileID string `json:"fileId"` FileInfo struct { } `json:"fileInfo"` FileName string `json:"fileName"` FileRetention struct { IsClientAuthorizedToRead bool `json:"isClientAuthorizedToRead"` Value struct { Mode any `json:"mode"` RetainUntilTimestamp any `json:"retainUntilTimestamp"` } `json:"value"` } `json:"fileRetention"` LegalHold struct { IsClientAuthorizedToRead bool `json:"isClientAuthorizedToRead"` Value any `json:"value"` } `json:"legalHold"` ServerSideEncryption struct { Algorithm any `json:"algorithm"` Mode any `json:"mode"` } `json:"serverSideEncryption"` UploadTimestamp int64 `json:"uploadTimestamp"` }
StartFile represents the data returned by StartLargeFile