Удаление файла из корзины

Я пытаюсь удалить объект из ведра. Читая документы, все это звучит очень просто, но я просто не могу заставить его работать.

Я следую инструкциям здесь, чтобы попытаться удалить этот объект, который я вижу, используя https://developer.api.autodesk.com/oss/v2/buckets/my-persistent-bucket/objects:

bucketKey => 'my-persistent-bucket'
        objectKey => '--test2.dwg'
        objectId => 'urn:adsk.objects:os.object:my-persistent-bucket/--test2.dwg'
        sha1 => '477085439a60779064d91fd1971d53c77c7a163a'
        size => (int) 188600
        location => 'https://developer.api.autodesk.com/oss/v2/buckets/my-persistent-bucket/objects/--test2.dwg' 

В соответствии с документами мы используем эту конечную точку:

https://developer.api.autodesk.com/oss/v2/buckets/:bucketKey/objects/:objectName

Где

:bucketKey URL закодирован 'my-persistent-bucket'

:objectName URL закодирован 'urn:adsk.objects:os.object:my-persistent-bucket/--test2.dwg'

Я пробовал использовать PHP urlencode() и следующую функцию кодирования base64:

private function _base64url_encode($data) {
  return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}

для кодирования :bucketKey и :objectName, но независимо от того, как я пытаюсь его кодировать, я всегда получаю:

404 : Object not found

Может ли кто-нибудь помочь мне понять, где я ошибаюсь?

Большое спасибо


person Kev Wilson    schedule 23.09.2016    source источник


Ответы (1)


Конечно, после того, как я сделал сообщение SO, я нахожу ответ.

Для тех, у кого есть те же проблемы, вы должны закодировать свой :objectName, который является просто именем файла, в моем примере '--test2.dwg', используя функцию PHP rawurlencode(), а не urlencode().

person Kev Wilson    schedule 23.09.2016
comment
В Javascript я использовал encodeURI('--test2.dwg'), и это сработало - person Duzmac; 02.04.2020