# S3JournalStorageOptions Properties

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/)

## BucketName {#bucketname-113d64fd}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/bucketname-113d64fd/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public string? BucketName
```

Bucket name where journals are stored.

## ClientConfig {#clientconfig-c9e93c3c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/clientconfig-c9e93c3c/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public AmazonS3Config? ClientConfig
```

Options to use when creating the S3 client, or `null` to use the AWS SDK defaults.

## CreateBucketIfNotExists {#createbucketifnotexists-50b07ae4}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/createbucketifnotexists-50b07ae4/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public bool CreateBucketIfNotExists
```

Gets or sets a value indicating whether the configured bucket should be created if it does not exist.

## DeleteOldCheckpoints {#deleteoldcheckpoints-963b2935}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/deleteoldcheckpoints-963b2935/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public bool DeleteOldCheckpoints
```

Gets or sets a value indicating whether obsolete checkpoint objects are deleted after a new checkpoint is published. Defaults to true.

## GetObjectKey {#getobjectkey-4bbdca7b}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/getobjectkey-4bbdca7b/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public Func<JournalId, string> GetObjectKey
```

Gets or sets the delegate used to generate the base object key for a journal.

## MaxMetadataOnlyConflictRetries {#maxmetadataonlyconflictretries-ee4c5eca}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/maxmetadataonlyconflictretries-ee4c5eca/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public int MaxMetadataOnlyConflictRetries
```

Gets or sets the maximum number of times Append, Replace, or Delete will refresh its cached WAL ETag and retry in place after observing a metadata-only conflict. Defaults to 5.

## MetadataOnlyConflictInitialBackoff {#metadataonlyconflictinitialbackoff-a40cad0c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/metadataonlyconflictinitialbackoff-a40cad0c/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public TimeSpan MetadataOnlyConflictInitialBackoff
```

Gets or sets the initial delay applied before retrying after a metadata-only conflict. Defaults to 10 ms.

## MetadataOnlyConflictMaxBackoff {#metadataonlyconflictmaxbackoff-3bbd5232}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/metadataonlyconflictmaxbackoff-3bbd5232/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public TimeSpan MetadataOnlyConflictMaxBackoff
```

Gets or sets the upper bound on metadata-only conflict retry backoff. Defaults to 200 ms.

## S3Client {#s3client-e9a41969}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/s3client-e9a41969/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public IAmazonS3? S3Client
```

Gets or sets the client used to access S3.

## StorageClass {#storageclass-885ba417}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/storageclass-885ba417/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public S3StorageClass? StorageClass
```

Gets or sets the S3 storage class applied to newly-created WAL and checkpoint objects.

## TryParseJournalId {#tryparsejournalid-49bb1f7a}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/tryparsejournalid-49bb1f7a/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public Func<string, JournalId?> TryParseJournalId
```

Gets or sets the delegate used to parse journal ids from catalog object keys.

## UseConditionalDelete {#useconditionaldelete-16e9197c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/useconditionaldelete-16e9197c/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public bool UseConditionalDelete
```

Gets or sets a value indicating whether delete requests add S3 Express size and last-modified conditions in addition to the WAL ETag condition.

## UseS3ExpressAppend {#uses3expressappend-1224bf65}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.s3/orleans.journaling.s3journalstorageoptions/properties/uses3expressappend-1224bf65/)

[Source](https://github.com/dotnet/orleans/blob/1644940b035c7bdf215a4fd7135757c06bcfe9ec/src/AWS/Orleans.Journaling.S3/S3JournalStorageOptions.cs)

```csharp
public bool UseS3ExpressAppend
```

Gets or sets a value indicating whether appends use S3 Express `Amazon.S3.Model.PutObjectRequest.WriteOffsetBytes`.
