func New()

in internal/conn/storage/storage.go [123:157]


func New(endpoint string, cred azcore.TokenCredential, options ...Option) (*Client, error) {
	client := &Client{
		now: time.Now,
	}

	for _, o := range options {
		if err := o(client); err != nil {
			return nil, err
		}
	}

	if client.log == nil {
		client.log = slog.Default()
	}

	if client.fakeUploader != nil {
		return client, nil
	}

	sClient, err := service.NewClient(endpoint, cred, &service.ClientOptions{ClientOptions: client.clientOptions})
	if err != nil {
		return nil, err
	}
	client.cli = sClient

	// TODO: We need to check if the storage containers delete themselves after a certain period of time.
	// If not fail.

	client.creds, err = newCredCache(sClient, withLogger(client.log))
	if err != nil {
		return nil, err
	}

	return client, nil
}