Альтернатива "Скачать" как глагол PowerShell?

У меня есть функция PowerShell Download-File, который использует WebClient.DownloadFile - отсюда и название.

Когда я пытаюсь повернуть .ps1 сценарий в .psm1 Модуль PowerShell предупреждает меня, что "Скачать" нет в списке рекомендуемых глаголов.

Какая хорошая альтернатива? Get- кажется, что получение свойств, а не содержимого (кроме Get-Contentкак ни странно). Receive- кажется мне слишком пассивным для меня (например, блоки скриптов до тех пор, пока информация не отправлена) - что не очень хорошо подходит.

Идеи?

7 ответов

Решение

Для меня "Get" - самый естественный глагол. Он получает все, а не только свойства. Для существительного я бы использовал что-то вроде "WebFile", вы можете легко угадать, что вы получаете и откуда оно исходит.

Не будет ли это работать:

 Start-Download -Url http://blah/

Или использовать Invoke-Downloadсогласно рекомендациям по синхронным операциям. Start для асинхронного.

Думаю, здесь я нашел лучший ответ. Я знаю, что это старая тема, но я не согласен с использованием этого глагола, если загружаемый вами файл будет храниться на вашем диске. Я думаю, что это должно быть зарезервировано для операций только для чтения. Это нормальноGetфайл из Интернета и сохраните его в памяти, чтобы можно было что-то с ним сделать позже, но как только вы записываете этот файл на диск, он больше не доступен только для чтения.

я думаю чтоSaveможет быть лучшей заменой общего назначения дляDownload.

Это может привести к чему-то вроде:Save-WebFile -Uri $Uri

https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands?view=powershell-7.2

Нет синонима для скачивания. Copyявляется ближайшим, что я нашел, документально подтвержден как синоним неутвержденного Clone.

По образцу изInvoke-WebRequest, Я хотел бы использоватьInvoke-ArtifactsDownload. Можно сохранить строгое имя и позволить некоторой части контекста исходить из имени модуля.

Например, сейчас я работаю над интеграцией с SharePoint и пришел к этому вопросу, потому что хотел назвать функцию для загрузки вложений элементов списка. Я запутался, когдаGet-PnPListItemAttachmentне получил имена файлов, а фактически загрузил их на диск, поэтомуGetздесь не соответствует моим ожиданиям, как и сказал ОП. Однако смыслPnPнеочевидно без знания имени библиотеки, и такая двусмысленность довольно распространена при работе с модулями.

Как насчет New-Download или же New-WebDownload или же New-DownloadFile??

Может быть Request-TeamCityArtifacts?

Другие вопросы по тегам