Skip to content

Unable to access objects on 3rd party S3 endpoints that only support path-style URL's #7

@ghost

Description

This is more of a feature request, but I would like see the use of path-style object URL's as an option for a given client configuration.

In testing the latest s3motion release with an EMC Elastic Cloud Storage endpoint that is not configured for virtual-host style URL's, I was unable to address objects. The use of the virtual-host style URL's requires some DNS configuration that isn't always practical or approved for use with on-premise object storage deployments. Having the ability to use the "legacy" path-style URL's would provide a suitable workaround.

Here is an example of the error:

Confirm bucket existence:

curl -i -XGET http://localhost:8080/api/buckets/ecs-joe
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 155
ETag: W/"9b-e8fcc88c"
Date: Wed, 31 Aug 2016 20:06:08 GMT
Connection: keep-alive

{"Buckets":[{"Name":"joe","CreationDate":"2016-08-17T19:48:23.501Z"}],"Owner":{"DisplayName":"<redacted>","ID":"<redacted>"}}

Attempt object listing:

$ curl -i -XGET http://localhost:8080/api/objects/ecs-joe/joe
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 1102
ETag: W/"c004Wda6KT/KI8i9JytTRg=="
Date: Wed, 31 Aug 2016 20:12:16 GMT
Connection: keep-alive

"unable to list joe : UnknownEndpoint: Inaccessible host: `joe.<redacted>.<redacted>.com'. This service may not be available in the `us-east-1' region.
    at Request.ENOTFOUND_ERROR (/usr/local/lib/node_modules/s3motion/node_modules/s3/node_modules/aws-sdk/lib/event_listeners.js:355:46)
    at Request.callListeners (/usr/local/lib/node_modules/s3motion/node_modules/s3/node_modules/aws-sdk/lib/sequential_executor.js:100:18)
    at Request.emit (/usr/local/lib/node_modules/s3motion/node_modules/s3/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
    at Request.emit (/usr/local/lib/node_modules/s3motion/node_modules/s3/node_modules/aws-sdk/lib/request.js:604:14)
    at ClientRequest.error (/usr/local/lib/node_modules/s3motion/node_modules/s3/node_modules/aws-sdk/lib/event_listeners.js:204:22)
    at ClientRequest.<anonymous> (/usr/local/lib/node_modules/s3motion/node_modules/s3/node_modules/aws-sdk/lib/http/node.js:61:19)
    at ClientRequest.emit (events.js:95:17)
    at Socket.socketErrorListener (http.js:1552:9)
    at Socket.emit (events.js:95:17)
    at net.js:834:16"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions