400 when updating Cloudflare dns-link if web3 gateway is enabled
AnthonyTsang opened this issue · 2 comments
Cloudflare is having a new way to handle dns-link.
Instead of using PUT zones/:zone_identifier/dns_records/:identifier
like it is an ordinary DNS record, there is a new endpoint PATCH zones/:zone_identifier/web3/hostnames/:identifier
My original issue is that, I was trying to run
ipd -p infura -d cloudflare .
with IPFS_DEPLOY_CLOUDFLARE__ZONE
, IPFS_DEPLOY_CLOUDFLARE__RECORD
and IPFS_DEPLOY_CLOUDFLARE__API_TOKEN
are set.
The Cloudflare API token has
Account : Account Settings : Read
Zone : Zone Settings : Edit
Zone : Zone : Edit
Zone : DNS : Edit
just like #148 said.
But it throws
HTTPError: Response code 400 (Bad Request)
at Request.<anonymous> (...\node_modules\ipfs-deploy\node_modules\got\dist\source\as-promise\index.js:118:42)
So I dig into the mentioned line and add
console.log(response.body)
It prints out
{
result: null,
success: false,
errors: [
{
code: 1049,
message: 'Unable to edit this record. It was generated by Cloudflare and can be modified in your Web3 Gateway configuration.'
}
],
messages: []
}
It seems that it has to use the new endpoint to do the job.
You can take a look at my forks of ipfs-deploy and dnslink-cloudflare. I updated them but as project seems dead (previous PR I did with unpin feature hangs since April) I'm now not caring about backward compatibiliy or tests.
I didn't implement all cases as you could still use "old way" to host ipfs files without using Cloudflare web3 features.