Snapshots

Snapshots allow you to create a read-only archive of files at a specific point in time. You can define a snapshot, add files to it, and then finalize it. Once finalized, the snapshot’s contents are immutable.

Each snapshot may have an expiration date. When the expiration date is reached, the snapshot is automatically deleted from the Files.com platform.

List Snapshots

SDK Method

snapshot.List()

Return Object

[]*Snapshot

Authorization Requirement

Available to all authenticated keys or sessions.

Additional Arguments

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/snapshot"
)

snapshotIterator, err := snapshot.List(files_sdk.SnapshotListParams{})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

for snapshotIterator.Next() {
    snapshot := snapshotIterator.snapshot()
}
err = snapshotIterator.Err()
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Show Snapshot

SDK Method

snapshot.Find()

Return Object

Snapshot

Authorization Requirement

Available to all authenticated keys or sessions.

SnapshotFindParams Fields

FieldDescription
Id
int64
Required
Snapshot ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/snapshot"
)

snapshot, err := snapshot.Find(files_sdk.SnapshotFindParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Create Snapshot

SDK Method

snapshot.Create()

Return Object

Snapshot

Authorization Requirement

Available to all authenticated keys or sessions.

SnapshotCreateParams Fields

FieldDefaultDescription
ExpiresAt
string
When the snapshot expires.
Name
string
A name for the snapshot.
Paths
array(string)
An array of paths to add to the snapshot.
WorkspaceId
int64
0Workspace ID. 0 means the default workspace.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/snapshot"
)

snapshot, err := snapshot.Create(files_sdk.SnapshotCreateParams{ExpiresAt: "2000-01-01T01:00:00Z"})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Finalize Snapshot

SDK Method

snapshot.Finalize()

Return Object

No return value.

Authorization Requirement

Available to all authenticated keys or sessions.

SnapshotFinalizeParams Fields

FieldDescription
Id
int64
Required
Snapshot ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/snapshot"
)

err := snapshot.Finalize(files_sdk.SnapshotFinalizeParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Update Snapshot

SDK Method

snapshot.Update()

Return Object

Snapshot

Authorization Requirement

Available to all authenticated keys or sessions.

SnapshotUpdateParams Fields

FieldDescription
Id
int64
Required
Snapshot ID.
ExpiresAt
string
When the snapshot expires.
Name
string
A name for the snapshot.
Paths
array(string)
An array of paths to add to the snapshot.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/snapshot"
)

snapshot, err := snapshot.Update(files_sdk.SnapshotUpdateParams{
  Id: 1,
  ExpiresAt: "2000-01-01T01:00:00Z"
})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Delete Snapshot

SDK Method

snapshot.Delete()

Return Object

No return value.

Authorization Requirement

Available to all authenticated keys or sessions.

SnapshotDeleteParams Fields

FieldDescription
Id
int64
Required
Snapshot ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/snapshot"
)

err := snapshot.Delete(files_sdk.SnapshotDeleteParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

The Snapshot Object

Some of the methods above return a Snapshot object. The attributes of this object are listed below.

AttributeDescription
Id
int64
The snapshot's unique ID.
ExpiresAt
date-time
When the snapshot expires.
FinalizedAt
date-time
When the snapshot was finalized.
Name
string
A name for the snapshot.
UserId
int64
The user that created this snapshot, if applicable.
BundleId
int64
The bundle using this snapshot, if applicable.
WorkspaceId
int64
Workspace ID. 0 means the default workspace.