code: func (bk *Backend) openBucket(prefix string, openFlag int) (*bucket, error) {
  	// Open bucket with requested flags.
  	file, err := os.OpenFile(prefix, openFlag, defaultFileMode)
  	if err != nil {
  		return nil, trace.ConvertSystemError(err)
  	}
  
  	// Lock the bucket so no one else can access it.
  	if err := utils.FSWriteLock(file); err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	// Read in all items from the bucket.
  	items, err := readBucket(file)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	return &bucket{
  		backend: bk,
  		items:   items,
  		file:    file,
  	}, nil
  }
docs: // openBucket will open a file, lock it, and then read in all the items in
  // the bucket.