Scaleway Object Storage
This guide explains how to configure Scaleway Object Storage credentials for use with the Data Factory HTTP task. Scaleway Object Storage is S3-compatible, so it uses AWS Signature V4 authentication.
Overview
Scaleway Object Storage is a French cloud storage service that provides an S3-compatible API. This means you can use the same AWS Signature V4 authentication method as Amazon S3, but with Scaleway-specific endpoints and credentials.
Supported Operations
- List objects in a bucket
- Upload files (PUT object)
- Download files (GET object)
- Delete files (DELETE object)
- Head object - Get object metadata
Prerequisites
- A Scaleway account
- Access to the Scaleway Console
- A Project created
- Product-Live account with access to the Data Factory platform
Step 1: Create a Bucket
- Sign in to the Scaleway Console
- Navigate to Object Storage in the left sidebar
- Click + Create bucket
- Select a Region:
fr-par- Paris, Francenl-ams- Amsterdam, Netherlandspl-waw- Warsaw, Poland
- Enter a Bucket name (e.g.,
product-live-data-factory) - Choose Visibility: Private (recommended)
- Click Create bucket
Bucket Names
Bucket names must be globally unique across all Scaleway customers and follow DNS naming conventions (lowercase, 3-63 characters, no special characters except hyphens).
Step 2: Create API Keys
- In the Scaleway Console, click on your Organization name (top right)
- Go to API Keys
- Click + Generate new API Key
- Enter a Description (e.g.,
Product-Live Data Factory) - Set an Expiration (optional but recommended)
- Select Project scope for better security
- Click Generate API Key
The system will display:
- Access Key (e.g.,
SCWXXXXXXXXXXXXXXXXX) - Secret Key (e.g.,
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
Important
Save these credentials immediately! The Secret Key will only be shown once. Download or copy both values securely.
Step 3: Note Your Endpoint
Scaleway Object Storage uses region-specific endpoints:
| Region Code | Location | Endpoint |
|---|---|---|
fr-par | Paris, France | s3.fr-par.scw.cloud |
nl-ams | Amsterdam, Netherlands | s3.nl-ams.scw.cloud |
pl-waw | Warsaw, Poland | s3.pl-waw.scw.cloud |
Step 4: Configure Data Factory Variables
Create the following variables in your Data Factory project:
| Variable Name | Description | Example |
|---|---|---|
scaleway_access_key | Scaleway Access Key | SCWXXXXXXXXXXXXXXXXX |
scaleway_secret_key | Scaleway Secret Key | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
scaleway_region | Scaleway Region code | fr-par |
scaleway_endpoint | S3 endpoint | s3.fr-par.scw.cloud |
scaleway_bucket_name | Bucket name | my-bucket |
Security Best Practice
Mark the scaleway_secret_key variable as a secret in Data Factory to prevent it from being displayed in logs.
Step 5: Use in HTTP Task
Example configuration for listing objects in a Scaleway bucket:
json
{
"name": "protocol-http-perform",
"taskReferenceName": "list-scaleway-objects",
"type": "SUB_WORKFLOW",
"inputParameters": {
"scheme": "HTTPS",
"method": "GET",
"domain": "${workflow.variables.scaleway_bucket_name}.${workflow.variables.scaleway_endpoint}",
"path": "/",
"queryParameters": {
"list-type": "2",
"max-keys": "100"
},
"authentication": {
"useAuthentication": true,
"type": "AWS_SIGNATURE_V4",
"accessKeyId": "${workflow.variables.scaleway_access_key}",
"secretAccessKey": "${workflow.variables.scaleway_secret_key}",
"region": "${workflow.variables.scaleway_region}",
"service": "s3"
},
"responses": ["STRING", "JSON"],
"connectionTimeOutMilliseconds": 10000
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Common Scaleway Object Storage Operations
Upload a File
json
{
"scheme": "HTTPS",
"method": "PUT",
"domain": "${workflow.variables.scaleway_bucket_name}.${workflow.variables.scaleway_endpoint}",
"path": "/my-folder/my-file.txt",
"headers": {
"Content-Type": "text/plain"
},
"body": {
"type": "PLAIN",
"contentType": "text/plain",
"text": "Hello from Product-Live Data Factory!"
},
"authentication": {
"useAuthentication": true,
"type": "AWS_SIGNATURE_V4",
"accessKeyId": "${workflow.variables.scaleway_access_key}",
"secretAccessKey": "${workflow.variables.scaleway_secret_key}",
"region": "${workflow.variables.scaleway_region}",
"service": "s3"
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Upload a Binary File
json
{
"scheme": "HTTPS",
"method": "PUT",
"domain": "${workflow.variables.scaleway_bucket_name}.${workflow.variables.scaleway_endpoint}",
"path": "/my-folder/image.png",
"headers": {
"Content-Type": "image/png"
},
"body": {
"type": "BINARY_FILE",
"file": {
"url": "${previous_task.output.file.url}"
}
},
"authentication": {
"useAuthentication": true,
"type": "AWS_SIGNATURE_V4",
"accessKeyId": "${workflow.variables.scaleway_access_key}",
"secretAccessKey": "${workflow.variables.scaleway_secret_key}",
"region": "${workflow.variables.scaleway_region}",
"service": "s3"
},
"responses": ["STRING"]
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Download a File
json
{
"scheme": "HTTPS",
"method": "GET",
"domain": "${workflow.variables.scaleway_bucket_name}.${workflow.variables.scaleway_endpoint}",
"path": "/my-folder/my-file.txt",
"authentication": {
"useAuthentication": true,
"type": "AWS_SIGNATURE_V4",
"accessKeyId": "${workflow.variables.scaleway_access_key}",
"secretAccessKey": "${workflow.variables.scaleway_secret_key}",
"region": "${workflow.variables.scaleway_region}",
"service": "s3"
},
"responses": ["FILE"]
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Delete a File
json
{
"scheme": "HTTPS",
"method": "DELETE",
"domain": "${workflow.variables.scaleway_bucket_name}.${workflow.variables.scaleway_endpoint}",
"path": "/my-folder/my-file.txt",
"authentication": {
"useAuthentication": true,
"type": "AWS_SIGNATURE_V4",
"accessKeyId": "${workflow.variables.scaleway_access_key}",
"secretAccessKey": "${workflow.variables.scaleway_secret_key}",
"region": "${workflow.variables.scaleway_region}",
"service": "s3"
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Get Object Metadata (HEAD)
json
{
"scheme": "HTTPS",
"method": "HEAD",
"domain": "${workflow.variables.scaleway_bucket_name}.${workflow.variables.scaleway_endpoint}",
"path": "/my-folder/my-file.txt",
"authentication": {
"useAuthentication": true,
"type": "AWS_SIGNATURE_V4",
"accessKeyId": "${workflow.variables.scaleway_access_key}",
"secretAccessKey": "${workflow.variables.scaleway_secret_key}",
"region": "${workflow.variables.scaleway_region}",
"service": "s3"
},
"responses": ["HEADERS"]
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Scaleway Regions Reference
| Region Code | Location | Data Center |
|---|---|---|
fr-par | Paris, France | DC2, DC3, DC5 |
nl-ams | Amsterdam, Netherlands | AMS1 |
pl-waw | Warsaw, Poland | WAW1, WAW2 |
Troubleshooting
Error: "The request signature we calculated does not match the signature you provided"
- Verify that the Access Key and Secret Key are correct
- Ensure the region matches the bucket's actual region
- Check that the endpoint format is correct (e.g.,
s3.fr-par.scw.cloud) - Verify the service name is
s3
Error: "Access Denied"
- Verify the API key has the required permissions
- Check that the API key is scoped to the correct project
- Ensure the bucket name is correct
Error: "NoSuchBucket"
- Verify the bucket name is spelled correctly
- Ensure you're using the correct region endpoint for the bucket
- Check that the bucket exists in the Scaleway Console
Error: "InvalidAccessKeyId"
- The Access Key is incorrect or has been deleted
- Regenerate API keys in the Scaleway Console
Comparison with AWS S3
| Feature | AWS S3 | Scaleway Object Storage |
|---|---|---|
| Authentication | AWS Signature V4 | AWS Signature V4 |
| Endpoint Format | {bucket}.s3.{region}.amazonaws.com | {bucket}.s3.{region}.scw.cloud |
| Region Format | eu-west-1, us-east-1 | fr-par, nl-ams, pl-waw |
| Service Name | s3 | s3 |
| API Compatibility | Native | S3-compatible |
Security Best Practices
- Use project-scoped API keys - More restrictive than organization-wide keys
- Set expiration dates - API keys can have automatic expiration
- Rotate keys regularly - Generate new API keys periodically
- Never commit credentials - Use Data Factory variables/secrets
- Use HTTPS only - All requests should use the HTTPS scheme
- Enable bucket versioning - For critical data protection
- Use bucket policies - Restrict access as needed
Related Documentation
- HTTP Task Reference
- Cloud Storage Integrations Overview
- AWS S3 - Similar S3 configuration
- Azure Blob Storage
- GCP Cloud Storage
- OVH Object Storage - Another S3-compatible service
- Data Factory Variables
- Scaleway Object Storage Documentation
- Scaleway S3 API Reference