Documentation
¶
Overview ¶
Package api provides types used by the Backblaze B2 API.
Index ¶
- func HasVersion(remote string) bool
- type AuthorizeAccountResponse
- type Bucket
- type CancelLargeFileRequest
- type CancelLargeFileResponse
- type CopyFileRequest
- type CopyPartRequest
- type CreateBucketRequest
- type DeleteBucketRequest
- type DeleteFileRequest
- type Error
- type File
- type FileInfo
- type FinishLargeFileRequest
- type GetDownloadAuthorizationRequest
- type GetDownloadAuthorizationResponse
- type GetFileInfoRequest
- type GetUploadPartURLRequest
- type GetUploadPartURLResponse
- type GetUploadURLRequest
- type GetUploadURLResponse
- type HideFileRequest
- type LifecycleRule
- type ListBucketsRequest
- type ListBucketsResponse
- type ListFileNamesRequest
- type ListFileNamesResponse
- type StartLargeFileRequest
- type StartLargeFileResponse
- type Timestamp
- type UpdateBucketRequest
- type UploadPartResponse
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HasVersion ¶ added in v1.56.0
HasVersion returns true if it looks like the passed filename has a timestamp on it.
Note that the passed filename's timestamp may still be invalid even if this function returns true.
Types ¶
type AuthorizeAccountResponse ¶
type AuthorizeAccountResponse struct { AbsoluteMinimumPartSize int `json:"absoluteMinimumPartSize"` // The smallest possible size of a part of a large file. AccountID string `json:"accountId"` // The identifier for the account. Allowed struct { BucketID string `json:"bucketId"` // When present, access is restricted to one bucket. BucketName string `json:"bucketName"` // When present, name of bucket - may be empty Capabilities []string `json:"capabilities"` // A list of strings, each one naming a capability the key has. NamePrefix interface{} `json:"namePrefix"` // When present, access is restricted to files whose names start with the prefix } `json:"allowed"` APIURL string `json:"apiUrl"` // The base URL to use for all API calls except for uploading and downloading files. AuthorizationToken string `json:"authorizationToken"` // An authorization token to use with all calls, other than b2_authorize_account, that need an Authorization header. DownloadURL string `json:"downloadUrl"` // The base URL to use for downloading files. MinimumPartSize int `json:"minimumPartSize"` // DEPRECATED: This field will always have the same value as recommendedPartSize. Use recommendedPartSize instead. RecommendedPartSize int `json:"recommendedPartSize"` // The recommended size for each part of a large file. We recommend using this part size for optimal upload performance. }
AuthorizeAccountResponse is as returned from the b2_authorize_account call
type Bucket ¶
type Bucket struct { ID string `json:"bucketId"` AccountID string `json:"accountId"` Name string `json:"bucketName"` Type string `json:"bucketType"` LifecycleRules []LifecycleRule `json:"lifecycleRules,omitempty"` }
Bucket describes a B2 bucket
type CancelLargeFileRequest ¶
type CancelLargeFileRequest struct {
ID string `json:"fileId"` // The unique identifier of the file being uploaded.
}
CancelLargeFileRequest is passed to b2_finish_large_file
The response is a CancelLargeFileResponse
type CancelLargeFileResponse ¶
type CancelLargeFileResponse struct { ID string `json:"fileId"` // The unique identifier of the file being uploaded. Name string `json:"fileName"` // The name of this file. AccountID string `json:"accountId"` // The identifier for the account. BucketID string `json:"bucketId"` // The unique ID of the bucket. }
CancelLargeFileResponse is the response to CancelLargeFileRequest
type CopyFileRequest ¶
type CopyFileRequest struct { SourceID string `json:"sourceFileId"` // The ID of the source file being copied. Name string `json:"fileName"` // The name of the new file being created. Range string `json:"range,omitempty"` // The range of bytes to copy. If not provided, the whole source file will be copied. MetadataDirective string `json:"metadataDirective,omitempty"` // The strategy for how to populate metadata for the new file: COPY or REPLACE ContentType string `json:"contentType,omitempty"` // The MIME type of the content of the file (REPLACE only) Info map[string]string `json:"fileInfo,omitempty"` // This field stores the metadata that will be stored with the file. (REPLACE only) DestBucketID string `json:"destinationBucketId,omitempty"` // The destination ID of the bucket if set, if not the source bucket will be used }
CopyFileRequest is as passed to b2_copy_file
type CopyPartRequest ¶ added in v1.53.0
type CopyPartRequest struct { SourceID string `json:"sourceFileId"` // The ID of the source file being copied. LargeFileID string `json:"largeFileId"` // The ID of the large file the part will belong to, as returned by b2_start_large_file. PartNumber int64 `json:"partNumber"` // Which part this is (starting from 1) Range string `json:"range,omitempty"` // The range of bytes to copy. If not provided, the whole source file will be copied. }
CopyPartRequest is the request for b2_copy_part - the response is UploadPartResponse
type CreateBucketRequest ¶
type CreateBucketRequest struct { AccountID string `json:"accountId"` Name string `json:"bucketName"` Type string `json:"bucketType"` LifecycleRules []LifecycleRule `json:"lifecycleRules,omitempty"` }
CreateBucketRequest is used to create a bucket
type DeleteBucketRequest ¶
DeleteBucketRequest is used to create a bucket
type DeleteFileRequest ¶
type DeleteFileRequest struct { ID string `json:"fileId"` // The ID of the file, as returned by b2_upload_file, b2_list_file_names, or b2_list_file_versions. Name string `json:"fileName"` // The name of this file. }
DeleteFileRequest is used to delete a file version
type Error ¶
type Error struct { Status int `json:"status"` // The numeric HTTP status code. Always matches the status in the HTTP response. Code string `json:"code"` // A single-identifier code that identifies the error. Message string `json:"message"` // A human-readable message, in English, saying what went wrong. }
Error describes a B2 error response
type File ¶
type File struct { ID string `json:"fileId"` // The unique identifier for this version of this file. Used with b2_get_file_info, b2_download_file_by_id, and b2_delete_file_version. Name string `json:"fileName"` // The name of this file, which can be used with b2_download_file_by_name. Action string `json:"action"` // Either "upload" or "hide". "upload" means a file that was uploaded to B2 Cloud Storage. "hide" means a file version marking the file as hidden, so that it will not show up in b2_list_file_names. The result of b2_list_file_names will contain only "upload". The result of b2_list_file_versions may have both. Size int64 `json:"size"` // The number of bytes in the file. UploadTimestamp Timestamp `json:"uploadTimestamp"` // This is a UTC time when this file was uploaded. SHA1 string `json:"contentSha1"` // The SHA1 of the bytes stored in the file. ContentType string `json:"contentType"` // The MIME type of the file. Info map[string]string `json:"fileInfo"` // The custom information that was uploaded with the file. This is a JSON object, holding the name/value pairs that were uploaded with the file. }
File is info about a file
type FileInfo ¶
type FileInfo struct { ID string `json:"fileId"` // The unique identifier for this version of this file. Used with b2_get_file_info, b2_download_file_by_id, and b2_delete_file_version. Name string `json:"fileName"` // The name of this file, which can be used with b2_download_file_by_name. Action string `json:"action"` // Either "upload" or "hide". "upload" means a file that was uploaded to B2 Cloud Storage. "hide" means a file version marking the file as hidden, so that it will not show up in b2_list_file_names. The result of b2_list_file_names will contain only "upload". The result of b2_list_file_versions may have both. AccountID string `json:"accountId"` // Your account ID. BucketID string `json:"bucketId"` // The bucket that the file is in. Size int64 `json:"contentLength"` // The number of bytes stored in the file. UploadTimestamp Timestamp `json:"uploadTimestamp"` // This is a UTC time when this file was uploaded. SHA1 string `json:"contentSha1"` // The SHA1 of the bytes stored in the file. ContentType string `json:"contentType"` // The MIME type of the file. Info map[string]string `json:"fileInfo"` // The custom information that was uploaded with the file. This is a JSON object, holding the name/value pairs that were uploaded with the file. }
FileInfo is received from b2_upload_file, b2_get_file_info and b2_finish_large_file
type FinishLargeFileRequest ¶
type FinishLargeFileRequest struct { ID string `json:"fileId"` // The unique identifier of the file being uploaded. SHA1s []string `json:"partSha1Array"` // A JSON array of hex SHA1 checksums of the parts of the large file. This is a double-check that the right parts were uploaded in the right order, and that none were missed. Note that the part numbers start at 1, and the SHA1 of the part 1 is the first string in the array, at index 0. }
FinishLargeFileRequest is passed to b2_finish_large_file
The response is a FileInfo object (with extra AccountID and BucketID fields which we ignore).
Large files do not have a SHA1 checksum. The value will always be "none".
type GetDownloadAuthorizationRequest ¶
type GetDownloadAuthorizationRequest struct { BucketID string `json:"bucketId"` // The ID of the bucket that you want to upload to. FileNamePrefix string `json:"fileNamePrefix"` // The file name prefix of files the download authorization token will allow access to. ValidDurationInSeconds int64 `json:"validDurationInSeconds"` // The number of seconds before the authorization token will expire. The minimum value is 1 second. The maximum value is 604800 which is one week in seconds. B2ContentDisposition string `json:"b2ContentDisposition,omitempty"` // optional - If this is present, download requests using the returned authorization must include the same value for b2ContentDisposition. }
GetDownloadAuthorizationRequest is passed to b2_get_download_authorization
type GetDownloadAuthorizationResponse ¶
type GetDownloadAuthorizationResponse struct { BucketID string `json:"bucketId"` // The unique ID of the bucket. FileNamePrefix string `json:"fileNamePrefix"` // The file name prefix of files the download authorization token will allow access to. AuthorizationToken string `json:"authorizationToken"` // The authorizationToken that must be used when downloading files, see b2_download_file_by_name. }
GetDownloadAuthorizationResponse is received from b2_get_download_authorization
type GetFileInfoRequest ¶
type GetFileInfoRequest struct {
ID string `json:"fileId"` // The ID of the file, as returned by b2_upload_file, b2_list_file_names, or b2_list_file_versions.
}
GetFileInfoRequest is used to return a FileInfo struct with b2_get_file_info
type GetUploadPartURLRequest ¶
type GetUploadPartURLRequest struct {
ID string `json:"fileId"` // The unique identifier of the file being uploaded.
}
GetUploadPartURLRequest is passed to b2_get_upload_part_url
type GetUploadPartURLResponse ¶
type GetUploadPartURLResponse struct { ID string `json:"fileId"` // The unique identifier of the file being uploaded. UploadURL string `json:"uploadUrl"` // The URL that can be used to upload files to this bucket, see b2_upload_part. AuthorizationToken string `json:"authorizationToken"` // The authorizationToken that must be used when uploading files to this bucket, see b2_upload_part. }
GetUploadPartURLResponse is received from b2_get_upload_url
type GetUploadURLRequest ¶
type GetUploadURLRequest struct {
BucketID string `json:"bucketId"` // The ID of the bucket that you want to upload to.
}
GetUploadURLRequest is passed to b2_get_upload_url
type GetUploadURLResponse ¶
type GetUploadURLResponse struct { BucketID string `json:"bucketId"` // The unique ID of the bucket. UploadURL string `json:"uploadUrl"` // The URL that can be used to upload files to this bucket, see b2_upload_file. AuthorizationToken string `json:"authorizationToken"` // The authorizationToken that must be used when uploading files to this bucket, see b2_upload_file. }
GetUploadURLResponse is received from b2_get_upload_url
type HideFileRequest ¶
type HideFileRequest struct { BucketID string `json:"bucketId"` // The bucket containing the file to hide. Name string `json:"fileName"` // The name of the file to hide. }
HideFileRequest is used to delete a file
type LifecycleRule ¶ added in v1.65.0
type LifecycleRule struct { DaysFromHidingToDeleting *int `json:"daysFromHidingToDeleting"` DaysFromUploadingToHiding *int `json:"daysFromUploadingToHiding"` FileNamePrefix string `json:"fileNamePrefix"` }
LifecycleRule is a single lifecycle rule
type ListBucketsRequest ¶
type ListBucketsRequest struct { AccountID string `json:"accountId"` // The identifier for the account. BucketID string `json:"bucketId,omitempty"` // When specified, the result will be a list containing just this bucket. BucketName string `json:"bucketName,omitempty"` // When specified, the result will be a list containing just this bucket. BucketTypes []string `json:"bucketTypes,omitempty"` // If present, B2 will use it as a filter for bucket types returned in the list buckets response. }
ListBucketsRequest is parameters for b2_list_buckets call
type ListBucketsResponse ¶
type ListBucketsResponse struct {
Buckets []Bucket `json:"buckets"`
}
ListBucketsResponse is as returned from the b2_list_buckets call
type ListFileNamesRequest ¶
type ListFileNamesRequest struct { BucketID string `json:"bucketId"` // required - The bucket to look for file names in. StartFileName string `json:"startFileName,omitempty"` // optional - The first file name to return. If there is a file with this name, it will be returned in the list. If not, the first file name after this the first one after this name. MaxFileCount int `json:"maxFileCount,omitempty"` // optional - The maximum number of files to return from this call. The default value is 100, and the maximum allowed is 1000. StartFileID string `json:"startFileId,omitempty"` // optional - What to pass in to startFileId for the next search to continue where this one left off. Prefix string `json:"prefix,omitempty"` // optional - Files returned will be limited to those with the given prefix. Defaults to the empty string, which matches all files. Delimiter string `json:"delimiter,omitempty"` // Files returned will be limited to those within the top folder, or any one subfolder. Defaults to NULL. Folder names will also be returned. The delimiter character will be used to "break" file names into folders. }
ListFileNamesRequest is as passed to b2_list_file_names or b2_list_file_versions
type ListFileNamesResponse ¶
type ListFileNamesResponse struct { Files []File `json:"files"` // An array of objects, each one describing one file. NextFileName *string `json:"nextFileName"` // What to pass in to startFileName for the next search to continue where this one left off, or null if there are no more files. NextFileID *string `json:"nextFileId"` // What to pass in to startFileId for the next search to continue where this one left off, or null if there are no more files. }
ListFileNamesResponse is as received from b2_list_file_names or b2_list_file_versions
type StartLargeFileRequest ¶
type StartLargeFileRequest struct { BucketID string `json:"bucketId"` //The ID of the bucket that the file will go in. Name string `json:"fileName"` // The name of the file. See Files for requirements on file names. ContentType string `json:"contentType"` // The MIME type of the content of the file, which will be returned in the Content-Type header when downloading the file. Use the Content-Type b2/x-auto to automatically set the stored Content-Type post upload. In the case where a file extension is absent or the lookup fails, the Content-Type is set to application/octet-stream. Info map[string]string `json:"fileInfo"` // A JSON object holding the name/value pairs for the custom file info. }
StartLargeFileRequest (b2_start_large_file) Prepares for uploading the parts of a large file.
If the original source of the file being uploaded has a last modified time concept, Backblaze recommends using src_last_modified_millis as the name, and a string holding the base 10 number of milliseconds since midnight, January 1, 1970 UTC. This fits in a 64 bit integer such as the type "long" in the programming language Java. It is intended to be compatible with Java's time long. For example, it can be passed directly into the Java call Date.setTime(long time).
If the caller knows the SHA1 of the entire large file being uploaded, Backblaze recommends using large_file_sha1 as the name, and a 40 byte hex string representing the SHA1.
Example: { "src_last_modified_millis" : "1452802803026", "large_file_sha1" : "a3195dc1e7b46a2ff5da4b3c179175b75671e80d", "color": "blue" }
type StartLargeFileResponse ¶
type StartLargeFileResponse struct { ID string `json:"fileId"` // The unique identifier for this version of this file. Used with b2_get_file_info, b2_download_file_by_id, and b2_delete_file_version. Name string `json:"fileName"` // The name of this file, which can be used with b2_download_file_by_name. AccountID string `json:"accountId"` // The identifier for the account. BucketID string `json:"bucketId"` // The unique ID of the bucket. ContentType string `json:"contentType"` // The MIME type of the file. Info map[string]string `json:"fileInfo"` // The custom information that was uploaded with the file. This is a JSON object, holding the name/value pairs that were uploaded with the file. UploadTimestamp Timestamp `json:"uploadTimestamp"` // This is a UTC time when this file was uploaded. }
StartLargeFileResponse is the response to StartLargeFileRequest
type Timestamp ¶
Timestamp is a UTC time when this file was uploaded. It is a base 10 number of milliseconds since midnight, January 1, 1970 UTC. This fits in a 64 bit integer such as the type "long" in the programming language Java. It is intended to be compatible with Java's time long. For example, it can be passed directly into the java call Date.setTime(long time).
func RemoveVersion ¶
RemoveVersion removes the timestamp from a filename as a version string.
It returns the new file name and a timestamp, or the old filename and a zero timestamp.
func (Timestamp) AddVersion ¶
AddVersion adds the timestamp as a version string into the filename passed in.
func (*Timestamp) MarshalJSON ¶
MarshalJSON turns a Timestamp into JSON (in UTC)
func (*Timestamp) UnmarshalJSON ¶
UnmarshalJSON turns JSON into a Timestamp
type UpdateBucketRequest ¶ added in v1.65.0
type UpdateBucketRequest struct { ID string `json:"bucketId"` AccountID string `json:"accountId"` Type string `json:"bucketType,omitempty"` LifecycleRules []LifecycleRule `json:"lifecycleRules,omitempty"` }
UpdateBucketRequest describes a request to modify a B2 bucket
type UploadPartResponse ¶
type UploadPartResponse struct { ID string `json:"fileId"` // The unique identifier of the file being uploaded. PartNumber int64 `json:"partNumber"` // Which part this is (starting from 1) Size int64 `json:"contentLength"` // The number of bytes stored in the file. SHA1 string `json:"contentSha1"` // The SHA1 of the bytes stored in the file. }
UploadPartResponse is the response to b2_upload_part