jwithing
04/23/2023, 3:14 AMHardAtWork
04/23/2023, 7:06 AMjwithing
04/23/2023, 11:56 AMHardAtWork
04/23/2023, 11:57 AMjwithing
04/23/2023, 12:04 PMjwithing
04/23/2023, 12:04 PMSkye
04/23/2023, 1:50 PMjwithing
04/23/2023, 2:29 PMPreflight response is not successful. Status code: 400
Fetch API cannot load https://api.cloudflare.com/client/v4/... due to access control checks.
jwithing
04/23/2023, 2:30 PMjwithing
04/23/2023, 2:30 PMjwithing
04/23/2023, 2:34 PMSkye
04/23/2023, 2:36 PMrd
05/05/2023, 5:14 AMHardAtWork
05/05/2023, 5:51 AMHardAtWork
05/05/2023, 5:51 AMrd
05/05/2023, 6:17 AMrd
05/05/2023, 6:18 AMrd
05/05/2023, 6:18 AMcurl --request PUT \
--url https://api.cloudflare.com/client/v4/accounts/account_identifier/workers/scripts/script_name \
--header 'Content-Type: multipart/form-data' \
--header 'X-Auth-Email: ' \
--form '"message"=' \
--form '"second-file.js"=' \
--form '"worker.js"=' \
--form metadata=
rd
05/05/2023, 6:18 AM"worker.js"
string
Worker script.
Example:
@worker.js;type=application/javascript+module
metadata
string
Metadata for script such as bindings in JSON format. Main module needs to be specified with main_module.
Example:
{"main_module": "worker.js", "some_binding": "stuff"}
`
rd
05/05/2023, 6:18 AMHardAtWork
05/05/2023, 6:23 AMrd
05/05/2023, 6:23 AMrd
05/05/2023, 6:24 AMrd
05/05/2023, 6:24 AM0xT
05/05/2023, 6:25 AMconst scriptName = 'weather';
const formData = new FormData();
const filePath = './cfweather.js';
const metadata = { "main_module": "worker.js", "some_binding": "stuff" }
const message = 'initial commit';
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('Error reading file:', err);
return;
}
formData.append('worker.js', data, {
contentType: 'application/javascript+module',
filename: 'worker.js'
});
});
formData.append('message', JSON.stringify(message), {
contentType: 'application/json'
});
formData.append('metadata',
JSON.stringify(metadata), {
contentType: 'application/json',
filename: 'metadata.json'
});
this is the code that @rd and I are using @HardAtWorkrd
05/05/2023, 8:06 AMjs
var axios = require("axios").default;
var options = {
method: 'PUT',
url: 'https://api.cloudflare.com/client/v4/accounts/account_identifier/workers/scripts/script_name',
headers: {
'Content-Type': 'multipart/form-data; boundary=---011000010111000001101001',
'X-Auth-Email': ''
},
data: '-----011000010111000001101001\r\nContent-Disposition: form-data; name=""message""\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=""second-file.js""\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=""worker.js""\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name="metadata"\r\n\r\n\r\n-----011000010111000001101001--\r\n\r\n'
};
axios.request(options).then(function (response) {
console.log(response.data);
}).catch(function (error) {
console.error(error);
});
rd
05/05/2023, 8:07 AMHardAtWork
05/05/2023, 8:14 AMrd
05/05/2023, 8:18 AMrd
05/05/2023, 8:18 AMrd
05/05/2023, 8:18 AMrd
05/05/2023, 8:19 AMHardAtWork
05/05/2023, 8:19 AMrd
05/05/2023, 8:20 AMrd
05/05/2023, 8:20 AMrd
05/05/2023, 8:21 AMrd
05/05/2023, 1:54 PMrd
05/05/2023, 6:30 PMrd
05/06/2023, 7:46 PMrd
05/06/2023, 7:46 PMrd
05/06/2023, 7:47 PMjs
const axios = require('axios');
const fs = require('fs');
const accountId = 'ACCOUNT_ID';
const email = 'email@here';
const token = 'API TOKEN';
const headers = {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/javascript',
};
function deployWorker(script,name) {
console.log(`Deploying ${name}...`)
const workerScript = fs.readFileSync(`${script}`);
const url = `https://api.cloudflare.com/client/v4/accounts/${accountId}/workers/scripts/${name}`;
axios({
method: 'PUT',
url: url,
headers: headers,
data: workerScript,
})
.then((response) => {
if (response.data.success) {
console.log(`Success! Deployed ${name}!`);
console.log(`Created on ${response.data.result.created_on}`);
console.log(`Modified on ${response.data.result.modified_on}`);
}
else {
console.log(`Error: ${response.data.errors[0].message}`);
}
})
.catch((error) => {
console.error(error);
});
}
deployWorker('worker_script.js','worker_name');
THis solved it!