Connecting to Dell EMC via MBS' SetupAWS()

Dell EMC have an implementation of Amazon S3 I need to try. I have set up a test account, I can log into it using CyberDuck, I have created a new Vault via CyberDuck and placed a sample JPEG into it via CyberDuck.

Now I want to connect to it using the CURLSMBS routines and download the JPEG, so I have adjusted the MBS ‘CURLS Amazon S3 download’ example:

[code]dim AWSAccessKeyId as String = “XXXXXX@ecstestdrive.emc.com
dim AWSSecretAccessKey as String = “XXXXXX/XXXXXX”
dim Region as String = “object.ecstestdrive.com” 'eu-central-1
dim BucketName as string = “Test”
dim FileName as string = “06_TourDeFrance.jpg”
dim Service as String = “” 's3
dim Path as String = “/” + BucketName + “/” + Filename
dim Domain as String = “” // empty for auto
dim Verb as String = “GET”
dim HashedPayload as String // empty for auto

call d.SetupAWS(AWSAccessKeyId, AWSSecretAccessKey, Region, Service, Path, Domain, Verb, HashedPayload)[/code]

My problem is that it gives the error ‘Could not resolve host: -object.ecstestdrive.com.amazonaws.com’ i.e. it is adding ‘.amazonaws.com’ to my Domain and adding a blank Service. I have tried setting the Domain manually, but it still cannot resolve it since d.SetupAWS(…) must have a non-blank Region.

Has anyone tried this and found a solution?

you use the latest plugins?
or some older ones?

also why is it object.ecstestdrive.com?

Maybe you need to put “object.ecstestdrive.com” in domain parameter.

*.ecstestdrive.com is the URL to EMC’s ECS Test Drive environment. ECS (EMC Cloud Storage) is EMC’s version of S3. It is used to provide an internal to the company Amazon-like S3 storage platform.

@scott boss Does this mean I should be able to use the MBS AWS S3 code to connect, or will I have to use the ChilKat plugin (https://www.example-code.com/xojo/s3.asp) or is there something else that is better?

[quote=372532:@Christian Schmitz]you use the latest plugins?
or some older ones?

also why is it object.ecstestdrive.com?

Maybe you need to put “object.ecstestdrive.com” in domain parameter.[/quote]
Yes I am using the latest beta plugins (actually one back from the most recent in the past two days). I tried setting the Domain, and leaving the region and service blank, but it gave a nil exception error saying the region was missing. If I make the Service blank it still adds ‘-’ to the front of the domain.

region = “object”
domain = “.ecstestdrive.com”

maybe?

[quote=372697:@Christian Schmitz]region = “object”
domain = “.ecstestdrive.com”

maybe?[/quote]
This gives the error: [quote]Could not resolve host: .ecstestdrive.com
Closing connection 0[/quote]
So I tried:

[quote]region = " " 'one space character since a blank causes an exception
domain = “object.ecstestdrive.com”[/quote]
This seems to work better as it gives the Output Data:

[quote]AccessDeniedA valid Date or x-amz-date header is required.0c07c835:16174cb5b94:9a0:ab9
[/quote]and Debug Data:

[quote] Trying 12.7.200.31…
TCP_NODELAY set
Connected to object.ecstestdrive.com (12.7.200.31) port 443 (#0)
ALPN, offering http/1.1
TLSv1.2 (OUT), TLS handshake, Client hello (1):
TLSv1.2 (IN), TLS handshake, Server hello (2):
TLSv1.2 (IN), TLS handshake, Certificate (11):
TLSv1.2 (IN), TLS handshake, Server key exchange (12):
TLSv1.2 (IN), TLS handshake, Server finished (14):
TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
TLSv1.2 (OUT), TLS change cipher, Client hello (1):
TLSv1.2 (OUT), TLS handshake, Finished (20):
TLSv1.2 (IN), TLS handshake, Finished (20):
SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
ALPN, server did not agree to a protocol
Server certificate:
subject: C=US; ST=Massachusetts; L=Hopkinton; O=EMC Corporation; OU=Advanced Software Division; CN=*.object.ecstestdrive.com
start date: Nov 9 00:00:00 2017 GMT
expire date: Nov 9 23:59:59 2019 GMT
issuer: C=US; O=thawte, Inc.; CN=thawte SHA256 SSL CA
SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
GET /CubeiTz/06_TourDeFrance.jpg HTTP/1.1
host: object.ecstestdrive.com
Authorization: AWS4-HMAC-SHA256 Credential=131600737059244794@ecstestdrive.emc.com/20180208/ //aws4_request,SignedHeaders=host;x-amz-content-sha256,Signature=5cada96987a386e06d42f636baec51094fe5b6e41c01e581096b24bb56f36003
Date: Thu, 08 Feb 2018 11:11:28 GMT
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

HTTP/1.1 403 Forbidden
Date: Thu, 08 Feb 2018 11:11:11 GMT
x-amz-id-2:
Server: ViPR/1.0
x-amz-request-id: 0c07c835:16174cb5b94:9a0:ab9
Content-Type: application/xml
Content-Length: 156

Connection #0 to host object.ecstestdrive.com left intact[/quote]
I’m not sure what header is required. I tried the MBS suggestion of a header array with one element being “x-amz-acl: public-read”, but that didn’t work.

In Theory you should be able to use an S3 interface and point it to your ECS instance and use it. I say theory as sometimes the S3 interface has Amazon’s info hard coded. If the tool/interface allows you to give it 100% of the parameters/details, then it should work. should is the keyword.

Thanks Scott. I’ll hassle the Dell EMC people to see what they suggest and whether their systems are supposed to me fully compatible.

Region = “object” maybe helps?

I wonder what your Webservice there needs for authentication?
Because the region is part of signature.

[quote=372810:@Christian Schmitz]Region = “object” maybe helps?

I wonder what your Webservice there needs for authentication?
Because the region is part of signature.[/quote]

Dell EMC ECS has a large API document that talks about everything that needs to happen to make calls to the appliance. The short answer is, it is am Amazon S3-compatible private cloud S3 storage. Is there a difference in the APIs. Probably. But they should be very similar if not exactly alike.

Maybe someone likes to send me a test account?
So I could try.

[quote=372852:@Christian Schmitz]Maybe someone likes to send me a test account?
So I could try.[/quote]

I dont have one.

I sell the Dell EMC ECS platform to my large enterprise customers.

[quote=372852:@Christian Schmitz]Maybe someone likes to send me a test account?
So I could try.[/quote]
I have sent you the connection details in an email.

Got plugin fixed and a file downloaded from David’s server :slight_smile: