Недавно я подумывал о сокращении написанного мной приложения, которое работает в Digital Ocean. Точнее, этот — архив революционного искусства, сделанного в поддержку переворота в Судане.
Но для этого мне нужно было загрузить все файлы из моей корзины в пространствах Digital Ocean. К сожалению, нет простого способа сделать это в пользовательском интерфейсе, и я не смог найти в Интернете ни одного скрипта с примерами этого, отсюда и эта запись в блоге.
В последнее время я немного больше использую Go, поэтому я подумал, что это будет прекрасная возможность попрактиковаться в написании параллелизма на Go. Надеюсь, это может быть полезно для тех, кто находится в таком же затруднительном положении 😧
Сначала я запустил go mod init <project name>
, а затем go get -u github.com/aws/aws-sdk-go
. Затем я создал main.go
и написал следующее:
Большинство примеров я взял из документации Digital Ocean здесь. Затем я просто переписал его, чтобы получить только те файлы, которые мне нужны, и заставить его работать с sync.WaitgGroup
, чтобы он работал одновременно. Я подумал, что это будет полезно на случай, если мне когда-нибудь придется загружать еще много файлов в будущем.