Альтернатива "Скачать" как глагол 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
Нет синонима для скачивания.
Copy
является ближайшим, что я нашел, документально подтвержден как синоним неутвержденного
Clone
.
По образцу изInvoke-WebRequest
, Я хотел бы использоватьInvoke-ArtifactsDownload
. Можно сохранить строгое имя и позволить некоторой части контекста исходить из имени модуля.
Например, сейчас я работаю над интеграцией с SharePoint и пришел к этому вопросу, потому что хотел назвать функцию для загрузки вложений элементов списка. Я запутался, когдаGet-PnPListItemAttachment
не получил имена файлов, а фактически загрузил их на диск, поэтомуGet
здесь не соответствует моим ожиданиям, как и сказал ОП. Однако смыслPnP
неочевидно без знания имени библиотеки, и такая двусмысленность довольно распространена при работе с модулями.
Как насчет New-Download
или же New-WebDownload
или же New-DownloadFile
??