Я пытаюсь получить список файлов, хранящихся в облаке 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