ca0084fad1
Custom storage drivers can register a factory to create the driver by name, similar to the database/sql package's Register and Open factory.Create returns an in-process driver if registered or an IPC driver if one can be found, erroring otherwise This standardizes parameter passing for creation of storage drivers Also adds documentation for storagedriver package and children
26 lines
522 B
Go
26 lines
522 B
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
|
|
"github.com/docker/docker-registry/storagedriver/ipc"
|
|
"github.com/docker/docker-registry/storagedriver/s3"
|
|
)
|
|
|
|
// An out-of-process S3 driver, intended to be run by ipc.NewDriverClient
|
|
func main() {
|
|
parametersBytes := []byte(os.Args[1])
|
|
var parameters map[string]string
|
|
err := json.Unmarshal(parametersBytes, ¶meters)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
driver, err := s3.FromParameters(parameters)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
ipc.StorageDriverServer(driver)
|
|
}
|