code: func (d *driver) Walk(ctx context.Context, from string, f storagedriver.WalkFn) error {
  	path := from
  	if !strings.HasSuffix(path, "/") {
  		path = path + "/"
  	}
  
  	prefix := ""
  	if d.s3Path("") == "" {
  		prefix = "/"
  	}
  
  	var objectCount int64
  	if err := d.doWalk(ctx, &objectCount, d.s3Path(path), prefix, f); err != nil {
  		return err
  	}
  
  	// S3 doesn't have the concept of empty directories, so it'll return path not found if there are no objects
  	if objectCount == 0 {
  		return storagedriver.PathNotFoundError{Path: from}
  	}
  
  	return nil
  }
docs: // Walk traverses a filesystem defined within driver, starting
  // from the given path, calling f on each file