2015-08-24 1 views
0

L'extrait de code ci-dessous me donne une réponse 401 unauthorized. Ce code fonctionne si je change la méthode HTTP de Delete pour obtenir ou post:Supprimer une requête HTTP dans Ruby produit 401 non autorisé

url = 'https://www.filepicker.io/api/file/LYsl3wunQBW0to2JD4D4' 
polysig_str = "?policy=#{policy}&signature=#{signature}" 

uri = URI.parse(url) 
http = Net::HTTP.new(uri.host) 
req = Net::HTTP::Delete.new(uri.path + polysig_str) 
response = http.request(req) 

Ma politique et la signature sont définies avant cet extrait de code et, comme je l'ai dit, le travail bien si je fais juste la demande Get, Je peux voir les données du fichier dans la réponse. J'ai également essayé de poster à cet url:

url = 'https://www.filepicker.io/api/file/LYsl3wunQBW0to2JD4D4/remove' 

Même résultat: 401 non autorisé. J'ai essayé d'inclure le call: 'remove' dans la politique et le handle: 'LYsl3wunQBW0to2JD4D4'.

La signature et la politique semble être correcte, car si je crée une politique expiré ou ne call: 'read' inclus, je reçois une réponse 403 Forbidden au lieu de 401.

Je ne peux pas comprendre comment supprimer l'enregistrement à partir d'une requête HTTP. La chose intéressante est que je peux poster sur cette URL et écraser le contenu du fichier mais je ne peux pas le supprimer complètement (Tout en Ruby).

Peut-être que c'est seulement possible de supprimer des fichiers en utilisant la bibliothèque JS propriétaire fournie par Filepicker?

+0

ne semble pas être quelque chose de mal. Supprimez api de repos: https://www.filepicker.com/documentation/file_ingestion/rest_api/remove Vous pouvez vérifier si votre politique vous permet de supprimer des fichiers (il ne peut pas vous permettre de faire cela et le 401 est normal dans ce Cas) – Mircea

Répondre

0

La réponse était d'ajouter ma clé app FilePicker aux paramètres ainsi:

polysig_str = "?key=#{key}&policy=#{policy}&signature=#{signature}" 

Assurez-vous de créer la variable clé avant cette ligne et réglez égale à la clé de votre application FilePicker (va de même pour la politique et signature).

Maintenant, je peux envoyer des requêtes HTTP Delete dans Ruby.