Documentation ¶
Overview ¶
Copyright 2020 duyanghao
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.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Register ¶
func Register(name string, factory StorageFactory)
Register registers new Factory with corresponding backend client name.
Types ¶
type Storage ¶
type Storage interface { // Create creates torrent with meta info CreateWithMetaInfo(name string, info *metainfo.MetaInfo) error // Stat is useful when we need to quickly know if a blob exists (and maybe // some basic information about it), without downloading the entire blob, // which may be very large. Stat(name string) (*FileInfo, error) // Upload uploads data into name. Upload(name string, data []byte) error // Download downloads name into dst. All implementations should return // backenderrors.ErrBlobNotFound when the blob was not found. Download(name string) ([]byte, error) // Delete removes relevant name Delete(name string) error // List lists entries whose names start with prefix. List(prefix string) ([]*FileInfo, error) // GetFilePath returns data path GetFilePath(id string) string // GetTorrentFilePath returns torrent path GetTorrentFilePath(id string) string // GetDataDir returns directory of data GetDataDir() string // GetTorrentDir returns directory of torrent GetTorrentDir() string }
Storage defines an interface for accessing blobs on a remote storage backend.
Implementations of Storage must be thread-safe, since they are cached and used concurrently by Manager.
func GetStorageBackend ¶
type StorageFactory ¶
type StorageFactory interface {
Create(config interface{}, authConfig interface{}) (Storage, error)
}
StorageFactory creates backend client given name.