我已将图像保存在 SQL Server 上,如屏幕截图所示。我们的服务器太慢了。我们计划将图像存储在 firebase 上并在 sql server 中保存引用。有没有什么有效的方法可以做到这一点。我在 SQL Server 中将大约 1500 个图像保存为 varbinary。附上截图供参考。
谢谢
我正在尝试使用某种使用 C# 的 SQL Server 脚本,如下所示。
class Program
{
static async Task Main(string[] args)
{
string firebaseStorageBucket = "your-firebase-storage-bucket"; // Replace with your Firebase Storage bucket name
try
{
// Connect to SQL Server database
string connectionString = "your-sql-server-connection-string";
using (SqlConnection connection = new SqlConnection(connectionString))
{
await connection.OpenAsync();
// Fetch file data from dbo.Media table
string selectQuery = "SELECT Md_ID, Md_FileName, Md_FileType, Md_Extension, Md_Title, Md_Desc FROM dbo.Media";
SqlCommand command = new SqlCommand(selectQuery, connection);
SqlDataReader reader = await command.ExecuteReaderAsync();
// Upload each file to Firebase Storage
while (await reader.ReadAsync())
{
string mdId = reader["Md_ID"].ToString();
string fileName = reader["Md_FileName"].ToString();
string fileType = reader["Md_FileType"].ToString();
string extension = reader["Md_Extension"].ToString();
string title = reader["Md_Title"].ToString();
string description = reader["Md_Desc"].ToString();
byte[] fileData = /* Retrieve file data from reader */;
await UploadFileToFirebase(mdId, fileData, fileName, fileType, extension, title, description, firebaseStorageBucket);
}
Console.WriteLine("All files uploaded to Firebase Storage successfully.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
static async Task UploadFileToFirebase(string mdId, byte[] fileData, string fileName, string fileType, string extension, string title, string description, string firebaseStorageBucket)
{
try
{
// Initialize Firebase Storage
var firebaseStorage = new FirebaseStorage(firebaseStorageBucket);
// Upload file to Firebase Storage
string storagePath = $"files/{mdId}/{fileName}.{extension}";
var uploadTask = firebaseStorage.Child(storagePath).PutAsync(new MemoryStream(fileData));
// Wait for upload to complete
string downloadUrl = await uploadTask;
Console.WriteLine($"File uploaded: {storagePath}, Download URL: {downloadUrl}");
}
catch (Exception ex)
{
Console.WriteLine($"Error uploading file: {ex.Message}");
}
}
}
但它显示成功,但没有在 firebase 上复制图像。
尝试将图像从 SQL Server 导出到文件夹,这样您就可以直观地检查它们是否已正确提取为文件。
然后第二次将它们作为文件读取并将二进制序列推送到 firebase。
仅使用代码,您无法确定 SQL Server 会输出什么。