kt ucloud storage api 문제점


kt ucloud storage api를 위한 클라이언트를 하나 만들던 중 발견한 문제점들을 기록해 둔다.

X-Auth-(User|Key)

‘X-Storage-User’는 ‘X-Auth-User’로 대체 사용이 가능하며, ‘X-Storage-Pass’ 역시
‘X-Auth-Key’ 대체 사용이 가능하며 이들간의 혼용도 가능하다.

500 에러 난다. 해결된 듯 하다.

HEAD 메서드에 Accept 가 필요하다?

아무래도 HEAD 기능을 따로 만들지 않고 GET 으로 대체하는 듯 하다.
(없어도 된다는) ?format= 을 명시적으로 붙이면 잘 되는지 모르겠지만 Accept: text/plain 으로 사용하였다. wildcard(*/*)도 되는 듯 하다.

header capitalization

“HTTP header 는 case-insensitive하니까 정상임!”. 뭐 이따구 응답밖에 없다.
제공되는 SDK로 때려봐도 사용자측에서 정상적으로 사용할 수 없다.

updating meta: {aA=A, bb=b}
retrieved meta: {Aa=A, Bb=b}

asynchronous processing?

서버측에서 asynchronous 하게 처리되는 듯 하다. 예를 들어, container에서 단 하나 뿐인 object를 삭제한 후(204) 곧바로 container를 삭제하면 때때로 409가 날라온다.

auth token!!!

이건 가장 짜증나고 어려운 문제이다.

you’re expired!!!

왜 token에 expiration을 두었는지는 대충 이해가 간다. 매번 새로운 token 을 생성해 주고 계속 쌓이는 놈들 삭제하기 귀찮았거나 token을 저장해 두고 계속 사용하는 사람들 때문에 삭제 루틴이 귀찮아서였겠지.
하지만 이 시점에, 누군지, 매우 병신같은 해결책을 만들었다. 24시간 이후 expire되는 토큰을 재사용하는 것은 상관 없는데 (클라이언트쪽에서는 상관할 바가 아닌데), 한 계정에서 다수의 토큰을 (X-Auth-New-Token 헤더를 사용해서) 생성할 수 없다. X-Auth-New-Token을 사용하는 순간 기존토큰을 사용하는 세션들은 좆된다. 이 기존 세션들이 또 다시 X-Auth-New-Token을 사용하는 순간 또 다는 세션들이 좆된다.
X-Auth-New-Token 헤더를 사용하지 않고 서버에서 주는대로 사용한다 하더라로 24시간이 되는 그 시점이 어떤 행동을 할 지 명시되지 않았다. 24-t 에 토큰을 받고 24+t 시점에 사용을 하게 될 경우 (t is minimum) 어떻게 동작하는지 의문스럽다.

use reseller?

리셀러 서비스를 사용하는 것도 동일한 문제점이 있다. 특정 사용자를 생성하고, 권한을 부여한 후, 사용한다고 해도 토큰이 expire되는 순간 어떻게 동작할 지 의문이다.

what now?

현재 가능한 시나리오는 매번 random 한 reseller user를 생성한 후 그 user에 특정 container에 대한 접근 권한(read/write)를 부여 한 후 작업을 수행한 후 그 user를 삭제하는 것이다. 이런 썅…

DIY

리셀러 서비스와 관련된 user및 권한 관리 메뉴는 없다. 제공되는 sdk에도 없다. 문의해 보면 ‘…pdf 어디어디를 참고해주세요’라는 답변만 돌아온다.

리셀러 서비스

최초 생성한 유저(admin) 계정으로 자기 자신을 삭제할 수 있다. 리셀러 서비스 날라가는 것은 물론이거니와 UI 도 먹통이 된다. 헐…… 이걸 도대체…..이렇게 만들기도 힘들겠다.

고객 문의

문의를 넣어보는 것 자체가 시간 낭비다.

i’m paying for myself!!!

이런걸 돈을 내고 사용할 수 밖에 없는 현실이 싫다. kt에 그 많은 Ph.D. 들은 뭐하고 사는지 궁금하다.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s