Skip to main content
Version: 1.5.0

Scaleway Object Storage

Scaleway Long Term Storage

Synopsis

Creates a target that writes log messages to Scaleway Object Storage with support for various file formats and authentication methods. The target handles large file uploads efficiently with configurable rotation based on size or event count. Scaleway Object Storage provides European-based, GDPR-compliant cloud storage with multi-region availability and competitive pricing.

Schema

- name: <string>
description: <string>
type: scaleways3
pipelines: <pipeline[]>
status: <boolean>
properties:
key: <string>
secret: <string>
region: <string>
endpoint: <string>
part_size: <numeric>
bucket: <string>
buckets:
- bucket: <string>
name: <string>
format: <string>
compression: <string>
extension: <string>
schema: <string>
name: <string>
format: <string>
compression: <string>
extension: <string>
schema: <string>
max_size: <numeric>
batch_size: <numeric>
timeout: <numeric>
field_format: <string>
interval: <string|numeric>
cron: <string>
debug:
status: <boolean>
dont_send_logs: <boolean>

Configuration

The following fields are used to define the target:

FieldRequiredDefaultDescription
nameYTarget name
descriptionN-Optional description
typeYMust be scaleways3
pipelinesN-Optional post-processor pipelines
statusNtrueEnable/disable the target

Scaleway Object Storage Credentials

FieldRequiredDefaultDescription
keyY-Scaleway Object Storage access key
secretY-Scaleway Object Storage secret key
regionY-Scaleway region (e.g., fr-par, nl-ams, pl-waw)
endpointY-Scaleway Object Storage endpoint (format: https://s3.<region>.scw.cloud)

Connection

FieldRequiredDefaultDescription
part_sizeN5Multipart upload part size in megabytes (minimum 5MB)
timeoutN30Connection timeout in seconds
field_formatN-Data normalization format. See applicable Normalization section

Files

FieldRequiredDefaultDescription
bucketN*-Default Scaleway bucket name (used if buckets not specified)
bucketsN*-Array of bucket configurations for file distribution
buckets.bucketY-Scaleway bucket name
buckets.nameY-File name template
buckets.formatN"json"Output format: json, multijson, avro, parquet
buckets.compressionN"zstd"Compression algorithm
buckets.extensionNMatches formatFile extension override
buckets.schemaN*-Schema definition file path (required for Avro and Parquet formats)
nameN"vmetric.{{.Timestamp}}.{{.Extension}}"Default file name template when buckets not used
formatN"json"Default output format when buckets not used
compressionN"zstd"Default compression when buckets not used
extensionNMatches formatDefault file extension when buckets not used
schemaN-Default schema path when buckets not used
max_sizeN0Maximum file size in bytes before rotation
batch_sizeN100000Maximum number of messages per file

* = Either bucket or buckets must be specified. When using buckets, schema is conditionally required for Avro and Parquet formats.

note

When max_size is reached, the current file is uploaded to Scaleway Object Storage and a new file is created. For unlimited file size, set the field to 0.

Scheduler

FieldRequiredDefaultDescription
intervalNrealtimeExecution frequency. See Interval for details
cronN-Cron expression for scheduled execution. See Cron for details

Debug Options

FieldRequiredDefaultDescription
debug.statusNfalseEnable debug logging
debug.dont_send_logsNfalseProcess logs but don't send to target (testing)

Details

The Scaleway Object Storage target provides European-focused cloud storage integration with comprehensive file format support. Scaleway's infrastructure is entirely based in Europe, making it an ideal choice for organizations requiring GDPR compliance and data sovereignty.

Authentication

Requires Scaleway Object Storage API credentials. API keys can be generated through the Scaleway Console under Credentials. Keys can be scoped with specific permissions and access policies for security.

Endpoint Configuration

The endpoint URL follows the pattern https://s3.<region>.scw.cloud where <region> is your chosen Scaleway region identifier. Each bucket is created in a specific region.

Available Regions

Scaleway Object Storage is available in the following European regions:

Region CodeLocation
fr-parFrance (Paris)
nl-amsNetherlands (Amsterdam)
pl-wawPoland (Warsaw)

File Formats

FormatDescription
jsonEach log entry is written as a separate JSON line (JSONL format)
multijsonAll log entries are written as a single JSON array
avroApache Avro format with schema
parquetApache Parquet columnar format with schema

Compression

All formats support optional compression to reduce storage costs and transfer times. Compression is applied before upload.

FormatCompression Options
JSON/MultiJSONzstd (default), gzip
Avronull, deflate, snappy, zstd
Parquetuncompressed, gzip, snappy, zstd, brotli, lz4

File Management

Files are rotated based on size (max_size parameter) or event count (batch_size parameter), whichever limit is reached first. Template variables in file names enable dynamic file naming for time-based partitioning.

Templates

The following template variables can be used in file names:

VariableDescriptionExample
{{.Year}}Current year2024
{{.Month}}Current month01
{{.Day}}Current day15
{{.Timestamp}}Current timestamp in nanoseconds1703688533123456789
{{.Format}}File formatjson
{{.Extension}}File extensionjson
{{.Compression}}Compression typezstd
{{.TargetName}}Target namemy_logs
{{.TargetType}}Target typescaleways3
{{.Table}}Bucket namelogs

Multipart Upload

Large files automatically use multipart upload protocol with configurable part size (part_size parameter). Default 5MB part size balances upload efficiency and memory usage.

Multiple Buckets

Single target can write to multiple Scaleway buckets with different configurations, enabling data distribution strategies (e.g., raw data to one bucket, processed data to another).

Schema Requirements

Avro and Parquet formats require schema definition files. Schema files must be accessible at the path specified in the schema parameter during target initialization.

GDPR Compliance

Scaleway's European infrastructure ensures full GDPR compliance with data residency guarantees. All data centers are located within the European Union, providing strong data sovereignty protections.

Storage Classes

Scaleway Object Storage offers Standard and Glacier storage classes for different access patterns and retention requirements, enabling cost optimization.

Multi-Region Capabilities

Deploy data across multiple European regions for enhanced availability and disaster recovery without leaving the European jurisdiction.

Examples

Basic Configuration

The minimum configuration for a JSON Scaleway target:

targets:
- name: basic_scaleway
type: scaleways3
properties:
key: "SCW1A2B3C4D5E6F7G8H9"
secret: "a1b2c3d4-e5f6-7890-a1b2-c3d4e5f6g7h8"
region: "fr-par"
endpoint: "https://s3.fr-par.scw.cloud"
bucket: "datastream-logs"

Multiple Buckets

Configuration for distributing data across multiple Scaleway buckets with different formats:

targets:
- name: multi_bucket_export
type: scaleways3
properties:
key: "SCW1A2B3C4D5E6F7G8H9"
secret: "a1b2c3d4-e5f6-7890-a1b2-c3d4e5f6g7h8"
region: "nl-ams"
endpoint: "https://s3.nl-ams.scw.cloud"
buckets:
- bucket: "raw-data-archive"
name: "raw-{{.Year}}-{{.Month}}-{{.Day}}.json"
format: "multijson"
compression: "gzip"
- bucket: "analytics-data"
name: "analytics-{{.Year}}/{{.Month}}/{{.Day}}/data_{{.Timestamp}}.parquet"
format: "parquet"
schema: "<schema definition>"
compression: "snappy"

Parquet Format

Configuration for daily partitioned Parquet files:

targets:
- name: parquet_analytics
type: scaleways3
properties:
key: "SCW1A2B3C4D5E6F7G8H9"
secret: "a1b2c3d4-e5f6-7890-a1b2-c3d4e5f6g7h8"
region: "pl-waw"
endpoint: "https://s3.pl-waw.scw.cloud"
bucket: "analytics-lake"
name: "events/year={{.Year}}/month={{.Month}}/day={{.Day}}/part-{{.Timestamp}}.parquet"
format: "parquet"
schema: "<schema definition>"
compression: "snappy"
max_size: 536870912

High Reliability

Configuration with enhanced settings:

targets:
- name: reliable_scaleway
type: scaleways3
pipelines:
- checkpoint
properties:
key: "SCW1A2B3C4D5E6F7G8H9"
secret: "a1b2c3d4-e5f6-7890-a1b2-c3d4e5f6g7h8"
region: "fr-par"
endpoint: "https://s3.fr-par.scw.cloud"
bucket: "critical-logs"
name: "logs-{{.Timestamp}}.json"
format: "json"
timeout: 60
part_size: 10

With Field Normalization

Using field normalization for standard format:

targets:
- name: normalized_scaleway
type: scaleways3
properties:
key: "SCW1A2B3C4D5E6F7G8H9"
secret: "a1b2c3d4-e5f6-7890-a1b2-c3d4e5f6g7h8"
region: "nl-ams"
endpoint: "https://s3.nl-ams.scw.cloud"
bucket: "normalized-logs"
name: "logs-{{.Timestamp}}.json"
format: "json"
field_format: "cim"

Debug Configuration

Configuration with debugging enabled:

targets:
- name: debug_scaleway
type: scaleways3
properties:
key: "SCW1A2B3C4D5E6F7G8H9"
secret: "a1b2c3d4-e5f6-7890-a1b2-c3d4e5f6g7h8"
region: "fr-par"
endpoint: "https://s3.fr-par.scw.cloud"
bucket: "test-logs"
name: "test-{{.Timestamp}}.json"
format: "json"
debug:
status: true
dont_send_logs: true

GDPR-Compliant Archive

Configuration optimized for GDPR-compliant long-term storage:

targets:
- name: gdpr_archive
type: scaleways3
properties:
key: "SCW1A2B3C4D5E6F7G8H9"
secret: "a1b2c3d4-e5f6-7890-a1b2-c3d4e5f6g7h8"
region: "fr-par"
endpoint: "https://s3.fr-par.scw.cloud"
bucket: "compliance-archive"
name: "archive/{{.Year}}/{{.Month}}/logs-{{.Day}}.json"
format: "json"
compression: "zstd"
max_size: 1073741824