Struct opendal::services::Ghac

source ·
pub struct Ghac { /* private fields */ }
Expand description

Github Action Cache Services support.

Notes

This service is mainly provided by github actions.

Refer to Caching dependencies to speed up workflows for more informatio.

To make this service work as expected, please make sure the following environment has been setup correctly:

  • ACTIONS_CACHE_URL
  • ACTIONS_RUNTIME_TOKEN

They can be exposed by following action:

- name: Configure Cache Env
  uses: actions/github-script@v6
  with:
    script: |
      core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
      core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');

To make delete work as expected, GITHUB_TOKEN should also be set via:

env:
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Limitations

Unlike other services, ghac doesn’t support create empty files. We provide a enable_create_simulation() to support this operation but may result unexpected side effects.

Also, ghac is a cache service which means the data store inside could be automatically evicted at any time.

Configuration

  • root: Set the work dir for backend.

Refer to GhacBuilder’s public API docs for more information.

Example

Via Builder

use std::sync::Arc;

use anyhow::Result;
use opendal::services::Ghac;
use opendal::Object;
use opendal::Operator;

#[tokio::main]
async fn main() -> Result<()> {
    // Create ghac backend builder.
    let mut builder = Ghac::default();
    // Set the root for ghac, all operations will happen under this root.
    //
    // NOTE: the root must be absolute path.
    builder.root("/path/to/dir");

    let op: Operator = Operator::create(builder)?.finish();

    // Create an object handle to start operation on object.
    let _: Object = op.object("test_file");

    Ok(())
}

Implementations§

source§

impl GhacBuilder

source

pub fn root(&mut self, root: &str) -> &mut Self

set the working directory root of backend

source

pub fn version(&mut self, version: &str) -> &mut Self

set the version that used by cache.

The version is the unique value that provides namespacing. It’s better to make sure this value is only used by this backend.

If not set, we will use opendal as default.

source

pub fn enable_create_simulation(&mut self) -> &mut Self

Enable create simulation for ghac service.

ghac service doesn’t support create empty files. By enabling create simulation, we will create a 1 byte file to represent empty file.

As a side effect, we can’t create file with only 1 byte anymore.

source

pub fn http_client(&mut self, client: HttpClient) -> &mut Self

Specify the http client that used by this service.

Notes

This API is part of OpenDAL’s Raw API. HttpClient could be changed during minor updates.

Trait Implementations§

source§

impl Builder for GhacBuilder

source§

const SCHEME: Scheme = Scheme::Ghac

Associated scheme for this builder.
§

type Accessor = GhacBackend

The accessor that built by this builder.
source§

fn from_map(map: HashMap<String, String>) -> Self

Construct a builder from given map.
source§

fn build(&mut self) -> Result<Self::Accessor>

Consume the accessoer builder to build a service.
source§

fn from_iter(iter: impl Iterator<Item = (String, String)>) -> Selfwhere
Self: Sized,

Construct a builder from given iterator.
source§

fn from_env() -> Selfwhere
Self: Sized,

Construct a builder from envs.
source§

impl Debug for GhacBuilder

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for GhacBuilder

source§

fn default() -> GhacBuilder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere
T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere
T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere
T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CompatExt for T

source§

fn compat(self) -> Compat<T>

Applies the Compat adapter by value. Read more
source§

fn compat_ref(&self) -> Compat<&T>

Applies the Compat adapter by shared reference. Read more
source§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the Compat adapter by mutable reference. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere
U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere
U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere
U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more