Skip to content

overly strict versionid checks prevent using minio with bucket versioninig #317

@ericphanson

Description

@ericphanson
[ Info: Minio server started
ERROR: ArgumentError: `version` string is invalid: "ee0d30d1-f068-4ce9-b98b-91ad8fd33acc"
Stacktrace:
  [1] S3Path(segments::Tuple{…}, root::String, drive::SubString{…}, isdirectory::Bool, version::SubString{…}, config::MinioConfig)
    @ AWSS3 ~/.julia/packages/AWSS3/fnytU/src/s3path.jl:35
  [2] S3Path(bucket::SubString{String}, key::String; isdirectory::Bool, version::SubString{String}, config::MinioConfig)
    @ AWSS3 ~/.julia/packages/AWSS3/fnytU/src/s3path.jl:87
  [3] write(fp::S3Path{…}, content::Vector{…}; part_size_mb::Int64, multipart::Bool, returns::Symbol, other_kwargs::@Kwargs{})
    @ AWSS3 ~/.julia/packages/AWSS3/fnytU/src/s3path.jl:711
  [4] write
    @ ~/.julia/packages/AWSS3/fnytU/src/s3path.jl:674 [inlined]
  [5] #write#94
    @ ~/.julia/packages/AWSS3/fnytU/src/s3path.jl:671 [inlined]
  [6] write
    @ ~/.julia/packages/AWSS3/fnytU/src/s3path.jl:670 [inlined]
  [7] (::var"#2#3")(aws_config::MinioConfig)
    @ Main ./REPL[5]:7
  [8] minio_server(body::var"#2#3", dirs::Vector{String}; address::String)
    @ Main ./REPL[4]:11
  [9] minio_server(body::Function, dirs::Vector{String})
    @ Main ./REPL[4]:1
 [10] top-level scope
    @ REPL[5]:1

using the following MWE

using AWS, AWSS3, Minio

# https://github.com/JuliaCloud/AWSS3.jl/blob/772152707c7d3f7b4c2d45a85b844470cda44715/test/utils.jl#L4-L21
AWS.aws_account_number(::Minio.MinioConfig) = "123"

function minio_server(body, dirs=[mktempdir()]; address="localhost:9005")
    server = Minio.Server(dirs; address)

    try
        run(server; wait=false)
        sleep(0.5)  # give the server just a bit of time, though it is amazingly fast to start

        config = MinioConfig(
            "http://$address"; username="minioadmin", password="minioadmin"
        )
        body(config)
    finally
        # Make sure we kill the server even if a test failed.
        kill(server)
    end
end


minio_server() do aws_config
    s3_create_bucket(aws_config, "test-bucket")
    s3_enable_versioning(aws_config, "test-bucket")

    s3_prefix = S3Path("s3://test-bucket/test-prefix/"; config=aws_config)
    path = joinpath(s3_prefix, "test")
    write(path, "testing123"; returns=:path)
end

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions