juicedata/juicefs · error
storj: bucket name is required (set via --bucket)
Error message
storj: bucket name is required (set via --bucket)
What it means
The bucket name derived by stripping the 'storj://' scheme and slashes from the endpoint is empty. Validation guard: Storj operations target a single bucket that must be encoded in the endpoint or set via --bucket; without it the client has nothing to address.
Source
Thrown at pkg/object/storj.go:355
return iter.Err()
})
if err != nil {
return nil, "", err
}
return pending, "", nil
}
func newStorj(endpoint, accessGrant, _, _ string) (ObjectStorage, error) {
if accessGrant == "" {
return nil, fmt.Errorf("storj: access grant is required (pass via --access-key)")
}
access, err := uplink.ParseAccess(accessGrant)
if err != nil {
return nil, fmt.Errorf("storj: parse access grant: %w", err)
}
bucket := strings.Trim(strings.TrimPrefix(endpoint, "storj://"), "/")
if bucket == "" {
return nil, fmt.Errorf("storj: bucket name is required (set via --bucket)")
}
cfg := uplink.Config{UserAgent: UserAgent}
ctx := context.Background()
project, err := cfg.OpenProject(ctx, access)
if err != nil {
return nil, fmt.Errorf("storj: open project: %w", err)
}
return &storjClient{project: project, bucket: bucket}, nil
}
func init() {
Register("storj", newStorj)
}
View on GitHub (pinned to c9a67b23e8)
Solutions
- Include the bucket in the endpoint, e.g. storj://mybucket
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pkg/object/storj.go:355 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06).
Data as JSON: /api/errors/2bf379b0c9ec8913.
Report an issue: GitHub.