code: func (lbs *linkedBlobStore) Create(ctx context.Context, options ...distribution.BlobCreateOption) (distribution.BlobWriter, error) {
  	dcontext.GetLogger(ctx).Debug("(*linkedBlobStore).Writer")
  
  	var opts distribution.CreateOptions
  
  	for _, option := range options {
  		err := option.Apply(&opts)
  		if err != nil {
  			return nil, err
  		}
  	}
  
  	if opts.Mount.ShouldMount {
  		desc, err := lbs.mount(ctx, opts.Mount.From, opts.Mount.From.Digest(), opts.Mount.Stat)
  		if err == nil {
  			// Mount successful, no need to initiate an upload session
  			return nil, distribution.ErrBlobMounted{From: opts.Mount.From, Descriptor: desc}
  		}
  	}
  
  	uuid := uuid.Generate().String()
  	startedAt := time.Now().UTC()
  
  	path, err := pathFor(uploadDataPathSpec{
  		name: lbs.repository.Named().Name(),
  		id:   uuid,
  	})
  
  	if err != nil {
  		return nil, err
  	}
  
  	startedAtPath, err := pathFor(uploadStartedAtPathSpec{
  		name: lbs.repository.Named().Name(),
  		id:   uuid,
  	})
  
  	if err != nil {
  		return nil, err
  	}
  
  	// Write a startedat file for this upload
  	if err := lbs.blobStore.driver.PutContent(ctx, startedAtPath, []byte(startedAt.Format(time.RFC3339))); err != nil {
  		return nil, err
  	}
  
  	return lbs.newBlobUpload(ctx, uuid, path, startedAt, false)
  }
docs: // Writer begins a blob write session, returning a handle.