Попытка удалить файлы в облаке Appcelerator с помощью скрипта powershell - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь получить список файлов, хранящихся в облаке appcelerator, возраст которых превышает 90 дней, поэтому эти файлы можно удалить.

Я могу без проблем войти в облако приложений в ядре powershell, и у меня нет проблем с получением списка файлов в формате JSON. Проблема начинается с получения ядром powershell для отправки правильного формата запроса в облако приложений. Процедура должна быть следующей: «показывать файлы ГДЕ дата« create_at »МЕНЬШЕ, ЧЕМ (отметка времени) ....

#login

$url = https://api.cloud.appcelerator.com/..."
$auth = @{
login ='x'
password ='y'
}
$body = (ConvertTo-Json $auth)
$hdrs = @{}
$hdrs.Add("appkey","key")
Invoke-RestMethod -Uri $url - Method Post -Body $body -ContentType 'application/json' - Headers $hdrs

# now get the files and delete any older than 90 days 
# (delete function not shown)

$deleteDate = (Get-Date).AddDays(-90)

$url = "https://api.cloud.appcelerator.com/v1/files....."

$hdrs =@{}

$formatendDate = @{"`$lt"= $deleteDate}

$fileDate = (ConvertTo-Json $formatendDate)

$whereclause = @{"created_at"= $fileDate}

$converted = (ConvertTo-Json $whereclause)

$request = @{where = $converted}

$body = (ConvertTo-Json $request)

Write-Host $body

Invoke-RestMethod -Uri $url -Method Get -Body $body -ContentType 'application/json' -Headers $hdrs | ConvertTo-Json

Я надеюсь, что это покажет, что есть только файлы, соответствующие этому запросу. Но то, что я получаю, ниже - все новые разрывы строк, я понятия не имею, как удалить, и временная метка соответствует формату временной метки appcelerator, но это то, что якобы «терпит неудачу».

Фактический результат:

{
  "where": "{\r\n  \"created_at\": \"{\\r\\n  \\\"$lt\\\": \\\"2019-02-02T12:21:30.8111463-05:00\\\"\\r\\n}\"\r\n}"
}
meta                                                                                  response
----                                                                                  --------
@{code=200; status=ok; method_name=loginUser; session_id=_2HUi15bp6S4wolPh3smySKukjA} @{users=System.Object[]}
Invoke-RestMethod : {
  "meta": {
    "code": 400,
    "status": "fail",
    "message": "Error: Invalid timestamp: {\r\n  \"$lt\": \"2019-02-02T12:21:30.8111463-05:00\"\r\n} for key: created_at",
    "method_name": "queryFiles"
  }
}
At C:\Users\..
+ Invoke-RestMethod -Uri $url -Method Get -Body $body -ContentType 'app ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (Method: GET, Reques\u2026application/json
}:HttpRequestMessage) [Invoke-RestMethod], HttpResponseException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
...