juicedata/juicefs · error
storj: access grant is required (pass via --access-key)
Error message
storj: access grant is required (pass via --access-key)
What it means
newStorj requires a Storj access grant string but received an empty one. Validation guard: unlike S3-style backends, Storj authenticates with a serialized access grant; it must be supplied via the --access-key option before any bucket operation.
Source
Thrown at pkg/object/storj.go:347
continue
}
pending = append(pending, &PendingPart{
Key: item.Key,
UploadID: item.UploadID,
Created: item.System.Created,
})
}
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}, nilView on GitHub (pinned to c9a67b23e8)
Solutions
- Pass the Storj access grant via --access-key when creating the storage
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pkg/object/storj.go:347 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/aac3bd2639cd19e9.
Report an issue: GitHub.