https://opendal.apache.org/ logo
Join Discord
Powered by
# general
  • w

    wlinna

    06/05/2025, 6:28 AM
    Or is there an actual good and quick fix here?
  • x

    Xuanwo

    06/05/2025, 6:28 AM
    You can try op.write_with(path).chunk(128MiB).await;
  • x

    Xuanwo

    06/05/2025, 6:29 AM
    This can ensure that all files under 128MiB will upload in oneshot.
  • w

    wlinna

    06/05/2025, 6:33 AM
    I meant a bug fix, not a workaround
  • x

    Xuanwo

    06/05/2025, 6:33 AM
    o, bug fix is easy.
  • x

    Xuanwo

    06/05/2025, 6:33 AM
    https://github.com/apache/opendal/blob/37efe24235388788b892f46e4101d59ecd37918c/core/src/services/gcs/writer.rs#L77
  • x

    Xuanwo

    06/05/2025, 6:34 AM
    Like what we do in
    gcs_insert_object_request
    , add
    OpWrite
    for this function and set the correct header.
  • w

    wlinna

    06/05/2025, 6:46 AM
    Okay, thanks. Will probably try that next week
  • x

    Xuanwo

    06/05/2025, 6:46 AM
    Thank you in advance!
  • w

    wlinna

    06/10/2025, 4:21 AM
    I submitted a PR. I felt lazy, so I packaged a fix for another breaking but small-scale bug. I hope you don't mind https://github.com/apache/opendal/pull/6275
  • x

    Xuanwo

    06/10/2025, 4:21 AM
    Great work!
  • w

    wlinna

    06/10/2025, 4:22 AM
    I tested this on our project, and the headers now work on multipart upload with these changes, as does the presign feature
  • x

    Xuanwo

    06/10/2025, 4:23 AM
    That's nice.
  • w

    wlinna

    06/10/2025, 4:24 AM
    My PR also adds custom metadata in multipart upload, but I didn't test that part since I have never used them
  • b

    benn

    07/14/2025, 2:01 PM
    hi, I am trying to use the http operator in the python bindings to access a url with a custom certificate, but i get:
    Copy code
    error sending request for url (https://internal/index.html): client error (Connect): invalid peer certificate: UnknownIssuer
    with:
    Copy code
    python3 -c "from opendal import Operator; print(Operator('http', endpoint='https://internal').read('index.html').decode().splitlines()[0])"
    I have added the certificate to the system, and it works with curl, but I can't get it to work. It seems to be related to the features enabled by reqwest, but I guess I can't control from the python library? Is there any way around this?
  • e

    erickg

    07/16/2025, 8:39 PM
    Your certificate is not going to be part of WebPKI the HTTP client reqwest uses. I don't think you can add a certificate to the compiled certs. There are many tunnel solutions over internet you might want to try.
  • b

    benn

    07/16/2025, 9:47 PM
    sure but rustls-native-certs used to be enabled for reqwest https://github.com/apache/opendal/pull/4365/files#diff-ac4e3071598a47848866c532150a233af5159d2757dab53572781ed09e13fbeeL66 so while one can enable it using rust, I think it would be useful for those using bindings to easily use system certs
  • e

    erickg

    07/16/2025, 10:01 PM
    I agree with you. The core is working on with external http client that will fix this problem. And then adding a feature flag is straightforward for bindings. This is a resource problem. For now though, yes, you are free to build from code.
  • Can someone explain what the root
    j

    jayce

    08/02/2025, 5:37 PM
    Can someone explain what the root argument is used for? Is this where temporary operations are performed in the event of reads/writes? It seems odd to have to do the following... (I am attempting to implement a Pathlib like interface over OpenDAL I intend to propose to pyiceberg in favor of fsspec and pyarrow file systems)```py from urllib.parse import urlparse, ParseResult from opendal import Operator from pathlib import Path class OperatorHelper: def __init__(self, operator: Operator, parsed: ParseResult, path: Path) -> None: self.operator = operator self.parsed = parsed self.path = path class FileSystem: @staticmethod def _get_operator_helper(path: str, **options) -> OperatorHelper: """Get the OperatorHelper for the given path. Args: path: The path to the file or directory. Returns: OperatorHelper """ parsed = urlparse(path) scheme = parsed.scheme netloc = parsed.netloc path = Path(parsed.path) root = str(path.parent) if scheme in ("fs", ""): operator = Operator("fs", root=root, **options) elif scheme in ("s3", "gcs"): operator = Operator(scheme, root=root, bucket=netloc) return OperatorHelper(operator, parsed, path) def read(self, path: str, **options): helper = self._get_operator_helper(path, **options) name = helper.path.name return helper.operator.read(name) file_system = FileSystem() ```
    x
    • 2
    • 4
  • And if that is the case, how am I
    j

    jayce

    08/02/2025, 5:50 PM
    And if that is the case, how am I supposed to read a file that doesnt exist in the root? Operators are truly supposed to be so short lived that I should dispose of one and create a new one for every operation? For example if I was writing a file larger than memory from local to s3 I would need several operators right?
    x
    • 2
    • 3
  • is there a way to set a unknow size in
    l

    lostb1t

    08/17/2025, 8:47 AM
    is there a way to set a unknow size in stat etc? or should i just make up a number (i dont know the size)
    x
    • 2
    • 3
  • New to Rust and OpenDAL
    a

    Aksshay88

    08/26/2025, 7:24 AM
    @Xuanwo Hey hi This is Aksshay I am really happy to be here and I am new to rust and to openDAL I want to contribute to this openDAL where should I start with can you pls help me !
    x
    • 2
    • 2
  • Hi, I'm curious what is the proper way
    c

    chuckd117

    08/26/2025, 5:29 PM
    Hi, I'm curious what is the proper way of using HttpClientLayer with a custom client that impls HttpFetch? It seems the HttpClientLayer::new() takes in only an HttpClient?
    e
    • 2
    • 5
  • e

    erickg

    08/26/2025, 7:29 PM
    I saw magnus getting new release https://github.com/matsadler/magnus/releases/tag/0.8.0 I could start work on Ruby binding ๐Ÿ˜„ (the time is tricky...)
  • hey quick question regarding the google
    z

    zsueo

    09/03/2025, 2:42 PM
    hey quick question regarding the google drive service, is there anyway to grab files or drives shared with the account?
    x
    • 2
    • 17
  • z

    zsueo

    09/03/2025, 2:57 PM
    also opendal works shockingly well on wasm32 or at least it does for google drive
  • x

    Xuanwo

    09/03/2025, 3:07 PM
    Wow, happy to know!
  • z

    zsueo

    09/03/2025, 3:09 PM
    it did require a moka patch so its not for everyone
  • z

    zsueo

    09/03/2025, 3:09 PM
    but apart from that it works fine
  • x

    Xuanwo

    09/03/2025, 3:10 PM
    I wish i can make it optional