Я работаю над приложением для чтения и записи файлов, используя API-интерфейс DBFS API 2.0 для Azure.Справочная документация для этого API: https://docs.azuredatabricks.net/api/latest/dbfs.html#read
Я могу загрузить файл (скажем, файл размером 1,4 МБ), преобразовав его в base64, а затем разделив на 1 МБ фрагментов данных.
По мере чтениядлина ограничена 1 МБ, я повторяю цикл для чтения данных со смещением 0
до 1000000
и 1000001
до end of the file
.Теперь первая итерация данных, 0
- 1000000
, действительна, и я могу подтвердить исходный файл, который я использовал для загрузки.
Но на второй и последующих итерациях данных данные base64 полностьюотличается и отсутствует в исходном файле base64.
Ниже приведен мой тестовый код: Second iteration
- 0,4 МБ
const axios = require('axios')
const fs = require('fs')
axios({
method: 'get',
url: 'https://********.azuredatabricks.net/api/2.0/dbfs/read',
data: {
path: '/Test/backlit-beach-clouds-1684881.jpg',
offset: 0,
length: 1000000
},
headers: {
'Authorization': `Bearer ****`
}
}).then(({data}) => {
if (data) {
console.log('Success', data.bytes_read)
fs.writeFile('./one.txt', data.data, function (err) {
console.log('done', err)
})
} else {
console.log('failed')
}
})
First iteration
- 1 МБ
const axios = require('axios')
const fs = require('fs')
axios({
method: 'get',
url: 'https://********.azuredatabricks.net/api/2.0/dbfs/read',
data: {
path: '/Test/backlit-beach-clouds-1684881.jpg',
offset: 1000001,
length: 1000000
},
headers: {
'Authorization': `Bearer ****`
}
}).then(({data}) => {
if (data) {
console.log('Success', data.bytes_read)
fs.writeFile('./two.txt', data.data, function (err) {
console.log('done', err)
})
} else {
console.log('failed')
}
})
Здесь *** заменены соответствующими доменами и токенами.
Как видите, приведенные выше примеры тестового кода будут генерировать one.txt
и two.txt
.Используя cat one.txt two.txt > final.txt
, я могу получить final.txt
, который я буду использовать для декодирования исходного файла.
Поскольку это всего лишь тестовый код, я не использовал никаких циклов или лучшего формата кодирования.Это просто для того, чтобы понять, что пошло не так.
Я придерживаюсь этого уже более 1 недели.Я имею в виду другие примеры кода, написанные для python, но без помощи.
Я не пытаюсь тратить впустую время.Но, пожалуйста, кто-нибудь поможет мне выяснить, что пошло не так или какая-либо другая стандартная процедура, которой я могу следовать?