uplink-c  v1.8.0
Data Structures | Macros | Typedefs
uplink_definitions.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include "uplink_compat.h"

Go to the source code of this file.

Data Structures

struct  UplinkHandle
 
struct  UplinkAccess
 
struct  UplinkProject
 
struct  UplinkDownload
 
struct  UplinkUpload
 
struct  UplinkEncryptionKey
 
struct  UplinkPartUpload
 
struct  UplinkConfig
 
struct  UplinkBucket
 
struct  UplinkCustomMetadataEntry
 
struct  UplinkObject
 
struct  UplinkUploadOptions
 
struct  UplinkDownloadOptions
 
struct  UplinkListObjectsOptions
 
struct  UplinkListUploadsOptions
 
struct  UplinkListBucketsOptions
 
struct  UplinkObjectIterator
 
struct  UplinkBucketIterator
 
struct  UplinkUploadIterator
 
struct  UplinkPartIterator
 
struct  UplinkPermission
 
struct  UplinkPart
 
struct  UplinkSharePrefix
 
struct  UplinkError
 
struct  UplinkAccessResult
 
struct  UplinkProjectResult
 
struct  UplinkBucketResult
 
struct  UplinkObjectResult
 
struct  UplinkUploadResult
 
struct  UplinkPartUploadResult
 
struct  UplinkDownloadResult
 
struct  UplinkWriteResult
 
struct  UplinkReadResult
 
struct  UplinkStringResult
 
struct  UplinkEncryptionKeyResult
 
struct  UplinkUploadInfo
 
struct  UplinkUploadInfoResult
 
struct  UplinkCommitUploadOptions
 
struct  UplinkCommitUploadResult
 
struct  UplinkPartResult
 
struct  UplinkListUploadPartsOptions
 
struct  EdgeConfig
 Parameters when connecting to edge services. More...
 
struct  EdgeRegisterAccessOptions
 
struct  EdgeCredentials
 Gateway credentials in S3 format. More...
 
struct  EdgeCredentialsResult
 
struct  EdgeShareURLOptions
 
struct  UplinkMoveObjectOptions
 we need to suppress 'pedantic' validation because struct is empty for now More...
 
struct  UplinkUploadObjectMetadataOptions
 
struct  UplinkCopyObjectOptions
 

Macros

#define UPLINK_ERROR_INTERNAL   0x02
 
#define UPLINK_ERROR_CANCELED   0x03
 
#define UPLINK_ERROR_INVALID_HANDLE   0x04
 
#define UPLINK_ERROR_TOO_MANY_REQUESTS   0x05
 
#define UPLINK_ERROR_BANDWIDTH_LIMIT_EXCEEDED   0x06
 
#define UPLINK_ERROR_STORAGE_LIMIT_EXCEEDED   0x07
 
#define UPLINK_ERROR_SEGMENTS_LIMIT_EXCEEDED   0x08
 
#define UPLINK_ERROR_PERMISSION_DENIED   0x09
 
#define UPLINK_ERROR_BUCKET_NAME_INVALID   0x10
 
#define UPLINK_ERROR_BUCKET_ALREADY_EXISTS   0x11
 
#define UPLINK_ERROR_BUCKET_NOT_EMPTY   0x12
 
#define UPLINK_ERROR_BUCKET_NOT_FOUND   0x13
 
#define UPLINK_ERROR_OBJECT_KEY_INVALID   0x20
 
#define UPLINK_ERROR_OBJECT_NOT_FOUND   0x21
 
#define UPLINK_ERROR_UPLOAD_DONE   0x22
 
#define EDGE_ERROR_AUTH_DIAL_FAILED   0x30
 
#define EDGE_ERROR_REGISTER_ACCESS_FAILED   0x31
 

Typedefs

typedef const char uplink_const_char
 

Data Structure Documentation

◆ UplinkHandle

struct UplinkHandle
Data Fields
size_t _handle

◆ UplinkAccess

struct UplinkAccess
Data Fields
size_t _handle

◆ UplinkProject

struct UplinkProject
Data Fields
size_t _handle

◆ UplinkDownload

struct UplinkDownload
Data Fields
size_t _handle

◆ UplinkUpload

struct UplinkUpload
Data Fields
size_t _handle

◆ UplinkEncryptionKey

struct UplinkEncryptionKey
Data Fields
size_t _handle

◆ UplinkPartUpload

struct UplinkPartUpload
Data Fields
size_t _handle

◆ UplinkConfig

struct UplinkConfig
Data Fields
int32_t dial_timeout_milliseconds
const char * temp_directory temp_directory specifies where to save data during downloads to use less memory.
const char * user_agent

◆ UplinkBucket

struct UplinkBucket
Data Fields
int64_t created
char * name

◆ UplinkSystemMetadata

struct UplinkSystemMetadata
Data Fields
int64_t content_length
int64_t created
int64_t expires

◆ UplinkCustomMetadataEntry

struct UplinkCustomMetadataEntry
Data Fields
char * key
size_t key_length
char * value
size_t value_length

◆ UplinkCustomMetadata

struct UplinkCustomMetadata
Data Fields
size_t count
UplinkCustomMetadataEntry * entries

◆ UplinkObject

struct UplinkObject
Data Fields
UplinkCustomMetadata custom
bool is_prefix
char * key
UplinkSystemMetadata system

◆ UplinkUploadOptions

struct UplinkUploadOptions
Data Fields
int64_t expires When expires is 0 or negative, it means no expiration.

◆ UplinkDownloadOptions

struct UplinkDownloadOptions
Data Fields
int64_t length When length is negative, it will read until the end of the blob.
int64_t offset

When offset is negative it will read the suffix of the blob. Combining negative offset and positive length is not supported.

◆ UplinkListObjectsOptions

struct UplinkListObjectsOptions
Data Fields
const char * cursor
bool custom
const char * prefix
bool recursive
bool system

◆ UplinkListUploadsOptions

struct UplinkListUploadsOptions
Data Fields
const char * cursor
bool custom
const char * prefix
bool recursive
bool system

◆ UplinkListBucketsOptions

struct UplinkListBucketsOptions
Data Fields
const char * cursor

◆ UplinkObjectIterator

struct UplinkObjectIterator
Data Fields
size_t _handle

◆ UplinkBucketIterator

struct UplinkBucketIterator
Data Fields
size_t _handle

◆ UplinkUploadIterator

struct UplinkUploadIterator
Data Fields
size_t _handle

◆ UplinkPartIterator

struct UplinkPartIterator
Data Fields
size_t _handle

◆ UplinkPermission

struct UplinkPermission
Data Fields
bool allow_delete
bool allow_download
bool allow_list
bool allow_upload
int64_t not_after

unix time in seconds when the permission becomes invalid. disabled when 0.

int64_t not_before

unix time in seconds when the permission becomes valid. disabled when 0.

◆ UplinkPart

struct UplinkPart
Data Fields
char * etag
size_t etag_length
int64_t modified plain size of a part.
uint32_t part_number
size_t size

◆ UplinkSharePrefix

struct UplinkSharePrefix
Data Fields
const char * bucket
const char * prefix prefix is the prefix of the shared object keys.

◆ UplinkError

struct UplinkError
Data Fields
int32_t code
char * message

◆ UplinkAccessResult

struct UplinkAccessResult
Data Fields
UplinkAccess * access
UplinkError * error

◆ UplinkProjectResult

struct UplinkProjectResult
Data Fields
UplinkError * error
UplinkProject * project

◆ UplinkBucketResult

struct UplinkBucketResult
Data Fields
UplinkBucket * bucket
UplinkError * error

◆ UplinkObjectResult

struct UplinkObjectResult
Data Fields
UplinkError * error
UplinkObject * object

◆ UplinkUploadResult

struct UplinkUploadResult
Data Fields
UplinkError * error
UplinkUpload * upload

◆ UplinkPartUploadResult

struct UplinkPartUploadResult
Data Fields
UplinkError * error
UplinkPartUpload * part_upload

◆ UplinkDownloadResult

struct UplinkDownloadResult
Data Fields
UplinkDownload * download
UplinkError * error

◆ UplinkWriteResult

struct UplinkWriteResult
Data Fields
size_t bytes_written
UplinkError * error

◆ UplinkReadResult

struct UplinkReadResult
Data Fields
size_t bytes_read
UplinkError * error

◆ UplinkStringResult

struct UplinkStringResult
Data Fields
UplinkError * error
char * string

◆ UplinkEncryptionKeyResult

struct UplinkEncryptionKeyResult
Data Fields
UplinkEncryptionKey * encryption_key
UplinkError * error

◆ UplinkUploadInfo

struct UplinkUploadInfo
Data Fields
UplinkCustomMetadata custom
bool is_prefix
char * key
UplinkSystemMetadata system
char * upload_id

◆ UplinkUploadInfoResult

struct UplinkUploadInfoResult
Data Fields
UplinkError * error
UplinkUploadInfo * info

◆ UplinkCommitUploadOptions

struct UplinkCommitUploadOptions
Data Fields
UplinkCustomMetadata custom_metadata

◆ UplinkCommitUploadResult

struct UplinkCommitUploadResult
Data Fields
UplinkError * error
UplinkObject * object

◆ UplinkPartResult

struct UplinkPartResult
Data Fields
UplinkError * error
UplinkPart * part

◆ UplinkListUploadPartsOptions

struct UplinkListUploadPartsOptions
Data Fields
uint32_t cursor

◆ EdgeConfig

struct EdgeConfig

Parameters when connecting to edge services.

Data Fields
const char * auth_service_address

DRPC server e.g. auth.[eu|ap|us]1.storjshare.io:7777 Mandatory for now because this is no agreement on how to derive this

const char * certificate_pem

Root certificate(s) or chain(s) against which Uplink checks the auth service. In PEM format. Intended to test against a self-hosted auth service or to improve security.

bool insecure_unencrypted_connection Controls whether a client uses unencrypted connection.

◆ EdgeRegisterAccessOptions

struct EdgeRegisterAccessOptions
Data Fields
bool is_public Wether objects can be read using only the access_key_id.

◆ EdgeCredentials

struct EdgeCredentials

Gateway credentials in S3 format.

Data Fields
const char * access_key_id Is also used in the linkshare url path.
const char * endpoint

Base HTTP(S) URL to the gateway. The gateway and linkshare service are different endpoints.

const char * secret_key

◆ EdgeCredentialsResult

struct EdgeCredentialsResult
Data Fields
EdgeCredentials * credentials
UplinkError * error

◆ EdgeShareURLOptions

struct EdgeShareURLOptions
Data Fields
bool raw Serve the file directly rather than through a landing page.

◆ UplinkMoveObjectOptions

struct UplinkMoveObjectOptions

we need to suppress 'pedantic' validation because struct is empty for now

◆ UplinkUploadObjectMetadataOptions

struct UplinkUploadObjectMetadataOptions

◆ UplinkCopyObjectOptions

struct UplinkCopyObjectOptions

Macro Definition Documentation

◆ EDGE_ERROR_AUTH_DIAL_FAILED

#define EDGE_ERROR_AUTH_DIAL_FAILED   0x30

◆ EDGE_ERROR_REGISTER_ACCESS_FAILED

#define EDGE_ERROR_REGISTER_ACCESS_FAILED   0x31

◆ UPLINK_ERROR_BANDWIDTH_LIMIT_EXCEEDED

#define UPLINK_ERROR_BANDWIDTH_LIMIT_EXCEEDED   0x06

◆ UPLINK_ERROR_BUCKET_ALREADY_EXISTS

#define UPLINK_ERROR_BUCKET_ALREADY_EXISTS   0x11

◆ UPLINK_ERROR_BUCKET_NAME_INVALID

#define UPLINK_ERROR_BUCKET_NAME_INVALID   0x10

◆ UPLINK_ERROR_BUCKET_NOT_EMPTY

#define UPLINK_ERROR_BUCKET_NOT_EMPTY   0x12

◆ UPLINK_ERROR_BUCKET_NOT_FOUND

#define UPLINK_ERROR_BUCKET_NOT_FOUND   0x13

◆ UPLINK_ERROR_CANCELED

#define UPLINK_ERROR_CANCELED   0x03

◆ UPLINK_ERROR_INTERNAL

#define UPLINK_ERROR_INTERNAL   0x02

◆ UPLINK_ERROR_INVALID_HANDLE

#define UPLINK_ERROR_INVALID_HANDLE   0x04

◆ UPLINK_ERROR_OBJECT_KEY_INVALID

#define UPLINK_ERROR_OBJECT_KEY_INVALID   0x20

◆ UPLINK_ERROR_OBJECT_NOT_FOUND

#define UPLINK_ERROR_OBJECT_NOT_FOUND   0x21

◆ UPLINK_ERROR_PERMISSION_DENIED

#define UPLINK_ERROR_PERMISSION_DENIED   0x09

◆ UPLINK_ERROR_SEGMENTS_LIMIT_EXCEEDED

#define UPLINK_ERROR_SEGMENTS_LIMIT_EXCEEDED   0x08

◆ UPLINK_ERROR_STORAGE_LIMIT_EXCEEDED

#define UPLINK_ERROR_STORAGE_LIMIT_EXCEEDED   0x07

◆ UPLINK_ERROR_TOO_MANY_REQUESTS

#define UPLINK_ERROR_TOO_MANY_REQUESTS   0x05

◆ UPLINK_ERROR_UPLOAD_DONE

#define UPLINK_ERROR_UPLOAD_DONE   0x22

Typedef Documentation

◆ uplink_const_char

typedef const char uplink_const_char