First of all, it seems that the link you are generating is not correct, as there are no files with just a year as name (all named "LTCBTC-30m-2020-04.zip" for example).
R cannot download, decompress and zip files all at the same time I think, so I suggest you download the zip as a temp, then read it. Here is an example (you'll need to add the loops for getting all data)
Here is a loop that will check for all files within date range, then download, unzip and merge them.
library(httr)
#File name looks like: LTCBTC-30m-2018-05.zip
#BASE URL
url = "https://data.binance.vision/data/spot/monthly/klines/LTCBTC/30m"
#Dates to use
dates = seq(as.Date("2017-01-01"), as.Date("2021-12-01"), by = "month")
dates = format(dates, "%Y-%m")
result = data.frame()
for(date in dates){
#Check if the file with that date exists
if(GET(sprintf("%s/LTCBTC-30m-%s.zip", url, date))$status_code == 200){
#Create temp file
tempFile = tempfile(fileext = ".zip")
#Download zip
download.file(sprintf("%s/LTCBTC-30m-%s.zip", url, date), tempFile)
#Read
newData = readr::read_csv(tempFile, col_names = F)
newData$date = date
#Merge
result = rbind(result, newData)
#remove temp file (optional as it is temp)
file.remove(tempFile)
}
}