209 lines
8.3 KiB
TypeScript
209 lines
8.3 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2019 Google LLC
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
import { Location } from './implementation/location';
|
|
import { ListOptions, UploadResult } from './public-types';
|
|
import { StringFormat } from './implementation/string';
|
|
import { Metadata } from './metadata';
|
|
import { FirebaseStorageImpl } from './service';
|
|
import { ListResult } from './list';
|
|
import { UploadTask } from './task';
|
|
/**
|
|
* Provides methods to interact with a bucket in the Firebase Storage service.
|
|
* @internal
|
|
* @param _location - An fbs.location, or the URL at
|
|
* which to base this object, in one of the following forms:
|
|
* gs://<bucket>/<object-path>
|
|
* http[s]://firebasestorage.googleapis.com/
|
|
* <api-version>/b/<bucket>/o/<object-path>
|
|
* Any query or fragment strings will be ignored in the http[s]
|
|
* format. If no value is passed, the storage object will use a URL based on
|
|
* the project ID of the base firebase.App instance.
|
|
*/
|
|
export declare class Reference {
|
|
private _service;
|
|
_location: Location;
|
|
constructor(_service: FirebaseStorageImpl, location: string | Location);
|
|
/**
|
|
* Returns the URL for the bucket and path this object references,
|
|
* in the form gs://<bucket>/<object-path>
|
|
* @override
|
|
*/
|
|
toString(): string;
|
|
protected _newRef(service: FirebaseStorageImpl, location: Location): Reference;
|
|
/**
|
|
* A reference to the root of this object's bucket.
|
|
*/
|
|
get root(): Reference;
|
|
/**
|
|
* The name of the bucket containing this reference's object.
|
|
*/
|
|
get bucket(): string;
|
|
/**
|
|
* The full path of this object.
|
|
*/
|
|
get fullPath(): string;
|
|
/**
|
|
* The short name of this object, which is the last component of the full path.
|
|
* For example, if fullPath is 'full/path/image.png', name is 'image.png'.
|
|
*/
|
|
get name(): string;
|
|
/**
|
|
* The `StorageService` instance this `StorageReference` is associated with.
|
|
*/
|
|
get storage(): FirebaseStorageImpl;
|
|
/**
|
|
* A `StorageReference` pointing to the parent location of this `StorageReference`, or null if
|
|
* this reference is the root.
|
|
*/
|
|
get parent(): Reference | null;
|
|
/**
|
|
* Utility function to throw an error in methods that do not accept a root reference.
|
|
*/
|
|
_throwIfRoot(name: string): void;
|
|
}
|
|
/**
|
|
* Download the bytes at the object's location.
|
|
* @returns A Promise containing the downloaded bytes.
|
|
*/
|
|
export declare function getBytesInternal(ref: Reference, maxDownloadSizeBytes?: number): Promise<ArrayBuffer>;
|
|
/**
|
|
* Download the bytes at the object's location.
|
|
* @returns A Promise containing the downloaded blob.
|
|
*/
|
|
export declare function getBlobInternal(ref: Reference, maxDownloadSizeBytes?: number): Promise<Blob>;
|
|
/** Stream the bytes at the object's location. */
|
|
export declare function getStreamInternal(ref: Reference, maxDownloadSizeBytes?: number): ReadableStream;
|
|
/**
|
|
* Uploads data to this object's location.
|
|
* The upload is not resumable.
|
|
*
|
|
* @param ref - StorageReference where data should be uploaded.
|
|
* @param data - The data to upload.
|
|
* @param metadata - Metadata for the newly uploaded data.
|
|
* @returns A Promise containing an UploadResult
|
|
*/
|
|
export declare function uploadBytes(ref: Reference, data: Blob | Uint8Array | ArrayBuffer, metadata?: Metadata): Promise<UploadResult>;
|
|
/**
|
|
* Uploads data to this object's location.
|
|
* The upload can be paused and resumed, and exposes progress updates.
|
|
* @public
|
|
* @param ref - StorageReference where data should be uploaded.
|
|
* @param data - The data to upload.
|
|
* @param metadata - Metadata for the newly uploaded data.
|
|
* @returns An UploadTask
|
|
*/
|
|
export declare function uploadBytesResumable(ref: Reference, data: Blob | Uint8Array | ArrayBuffer, metadata?: Metadata): UploadTask;
|
|
/**
|
|
* Uploads a string to this object's location.
|
|
* The upload is not resumable.
|
|
* @public
|
|
* @param ref - StorageReference where string should be uploaded.
|
|
* @param value - The string to upload.
|
|
* @param format - The format of the string to upload.
|
|
* @param metadata - Metadata for the newly uploaded string.
|
|
* @returns A Promise containing an UploadResult
|
|
*/
|
|
export declare function uploadString(ref: Reference, value: string, format?: StringFormat, metadata?: Metadata): Promise<UploadResult>;
|
|
/**
|
|
* List all items (files) and prefixes (folders) under this storage reference.
|
|
*
|
|
* This is a helper method for calling list() repeatedly until there are
|
|
* no more results. The default pagination size is 1000.
|
|
*
|
|
* Note: The results may not be consistent if objects are changed while this
|
|
* operation is running.
|
|
*
|
|
* Warning: listAll may potentially consume too many resources if there are
|
|
* too many results.
|
|
* @public
|
|
* @param ref - StorageReference to get list from.
|
|
*
|
|
* @returns A Promise that resolves with all the items and prefixes under
|
|
* the current storage reference. `prefixes` contains references to
|
|
* sub-directories and `items` contains references to objects in this
|
|
* folder. `nextPageToken` is never returned.
|
|
*/
|
|
export declare function listAll(ref: Reference): Promise<ListResult>;
|
|
/**
|
|
* List items (files) and prefixes (folders) under this storage reference.
|
|
*
|
|
* List API is only available for Firebase Rules Version 2.
|
|
*
|
|
* GCS is a key-blob store. Firebase Storage imposes the semantic of '/'
|
|
* delimited folder structure.
|
|
* Refer to GCS's List API if you want to learn more.
|
|
*
|
|
* To adhere to Firebase Rules's Semantics, Firebase Storage does not
|
|
* support objects whose paths end with "/" or contain two consecutive
|
|
* "/"s. Firebase Storage List API will filter these unsupported objects.
|
|
* list() may fail if there are too many unsupported objects in the bucket.
|
|
* @public
|
|
*
|
|
* @param ref - StorageReference to get list from.
|
|
* @param options - See ListOptions for details.
|
|
* @returns A Promise that resolves with the items and prefixes.
|
|
* `prefixes` contains references to sub-folders and `items`
|
|
* contains references to objects in this folder. `nextPageToken`
|
|
* can be used to get the rest of the results.
|
|
*/
|
|
export declare function list(ref: Reference, options?: ListOptions | null): Promise<ListResult>;
|
|
/**
|
|
* A `Promise` that resolves with the metadata for this object. If this
|
|
* object doesn't exist or metadata cannot be retrieved, the promise is
|
|
* rejected.
|
|
* @public
|
|
* @param ref - StorageReference to get metadata from.
|
|
*/
|
|
export declare function getMetadata(ref: Reference): Promise<Metadata>;
|
|
/**
|
|
* Updates the metadata for this object.
|
|
* @public
|
|
* @param ref - StorageReference to update metadata for.
|
|
* @param metadata - The new metadata for the object.
|
|
* Only values that have been explicitly set will be changed. Explicitly
|
|
* setting a value to null will remove the metadata.
|
|
* @returns A `Promise` that resolves
|
|
* with the new metadata for this object.
|
|
* See `firebaseStorage.Reference.prototype.getMetadata`
|
|
*/
|
|
export declare function updateMetadata(ref: Reference, metadata: Partial<Metadata>): Promise<Metadata>;
|
|
/**
|
|
* Returns the download URL for the given Reference.
|
|
* @public
|
|
* @returns A `Promise` that resolves with the download
|
|
* URL for this object.
|
|
*/
|
|
export declare function getDownloadURL(ref: Reference): Promise<string>;
|
|
/**
|
|
* Deletes the object at this location.
|
|
* @public
|
|
* @param ref - StorageReference for object to delete.
|
|
* @returns A `Promise` that resolves if the deletion succeeds.
|
|
*/
|
|
export declare function deleteObject(ref: Reference): Promise<void>;
|
|
/**
|
|
* Returns reference for object obtained by appending `childPath` to `ref`.
|
|
*
|
|
* @param ref - StorageReference to get child of.
|
|
* @param childPath - Child path from provided ref.
|
|
* @returns A reference to the object obtained by
|
|
* appending childPath, removing any duplicate, beginning, or trailing
|
|
* slashes.
|
|
*
|
|
*/
|
|
export declare function _getChild(ref: Reference, childPath: string): Reference;
|