На рельсах 5.2 я сохраняю холст в виде BLOB-объекта и отправляю его в хранилище Azur через Активное хранилище.
На моей машине, с помощью среды разработки, png создан идеально и отлично отправляется в BLOB-объект Azur, и я прикрепляю его к модели.
Но на тестовой машине (с тестовой средой) я получаю ActiveStorage :: IntegrityError, когда я присоединяю BLOB-объект к изображению.
JavaScript, который отправляет PNG
var project_id = 2;
var csrf_token = $("meta[name=csrf-token]").attr("content");
var project_metadata = new FormData();
project_metadata.append("utf8","✓");
project_metadata.append("authenticity_token",csrf_token);
project_metadata.append("projet_id",project_id.toString());
project_metadata.append("commit","Create Projet");
var file_name = "rdc.png";
var upload_file_field = that.drawing.getElement().toBlob(function(blob) {
var file = new File([blob], file_name, {type: "image/png", lastModified: Date.now()});
var url = "/projects/"+project_id.toString()+"/store_plan"
project_metadata.append("images",file,file_name);
$.ajax({
type: "POST",
url: url,
data: project_metadata,
processData: false,
contentType: false,
success: function(){
console.log("images save");
}
});
})
Контроллер
def store_plan
@project.images.attach(io: params["images"].to_io, filename: params["images"].original_filename)
end
The storage.yml
azure_dev:
service: AzureStorage
storage_account_name: "XXXXX"
storage_access_key: "..."
container: projectsdevelopment
test:
service: AzureStorage
storage_account_name: "XXXXX"
storage_access_key: "..."
container: projectstest
Моя машина разработки - это MacBook Pro, моя машина тестирования - Ubuntu.
Ну, не понимаю, почему я получаю ActiveStorage :: IntegrityError в тесте, и все в порядке на стадии разработки?
Спасибо за вашу помощь.