ncw / swift

Go language interface to Swift / Openstack Object Storage / Rackspace cloud files (golang)
MIT License
310 stars 107 forks source link

Support for symlink #139

Closed matcornic closed 4 years ago

matcornic commented 5 years ago

Hello,

First, a big thank you for this library <3.

I have a request though: could you support Symlink ? See https://github.com/openstack/swift/blob/master/swift/common/middleware/symlink.py

It's available since version 2.17 and i would be useful.

I tried to create an Object with ObjectCreate, the X-Symlink-Target header and a pseudo empty file (closed directly the file returned by ObjectCreate). But it's stored as just a plain empty file and not a symlink. It seems that the API wants a "nil" file instead of empty one ?

      // [... init swift connexion to 's' variable]
       headers := map[string]string{
        "X-Symlink-Target": "container/myobject",
    }

    file, errC := s.ObjectCreate("container", "mysimlink", false, "", "application/octet-stream", headers)
    if errC != nil {
        return "", errC
    }

    // Empty file
    if err := file.Close(); err != nil {
        return "", err
    }

Note: my version of OpenStack: 2.18.1.dev68