Лучший и самый простой способ загрузить файлы в Amazon S3 через asp.net. Посмотрите на следующий пост в блоге мной. Я думаю, что это поможет. Здесь я объяснил, от добавления корзины S3 до создания API-ключа, установки Amazon SDK и написания кода для загрузки файлов. Ниже приведен пример кода для загрузки файлов в Amazon S3 с помощью asp.net C #.
using System
using System.Collections.Generic
using System.Linq
using System.Web
using Amazon
using Amazon.S3
using Amazon.S3.Transfer
///
/// Summary description for AmazonUploader
///
public class AmazonUploader
{
public bool sendMyFileToS3(System.IO.Stream localFilePath, string bucketName, string subDirectoryInBucket, string fileNameInS3)
{
// input explained :
// localFilePath = we will use a file stream , instead of path
// bucketName : the name of the bucket in S3 ,the bucket should be already created
// subDirectoryInBucket : if this string is not empty the file will be uploaded to
// a subdirectory with this name
// fileNameInS3 = the file name in the S3
// create an instance of IAmazonS3 class ,in my case i choose RegionEndpoint.EUWest1
// you can change that to APNortheast1 , APSoutheast1 , APSoutheast2 , CNNorth1
// SAEast1 , USEast1 , USGovCloudWest1 , USWest1 , USWest2 . this choice will not
// store your file in a different cloud storage but (i think) it differ in performance
// depending on your location
IAmazonS3 client = new AmazonS3Client("Your Access Key", "Your Secrete Key", Amazon.RegionEndpoint.USWest2);
// create a TransferUtility instance passing it the IAmazonS3 created in the first step
TransferUtility utility = new TransferUtility(client);
// making a TransferUtilityUploadRequest instance
TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();
if (subDirectoryInBucket == "" || subDirectoryInBucket == null)
{
request.BucketName = bucketName; //no subdirectory just bucket name
}
else
{ // subdirectory and bucket name
request.BucketName = bucketName + @"/" + subDirectoryInBucket;
}
request.Key = fileNameInS3 ; //file name up in S3
//request.FilePath = localFilePath; //local file name
request.InputStream = localFilePath;
request.CannedACL = S3CannedACL.PublicReadWrite;
utility.Upload(request); //commensing the transfer
return true; //indicate that the file was sent
}
}
Здесь вы можете использовать функцию sendMyFileToS3 для загрузки потока файлов в amazon S3. Для более подробной информации проверьте мой блог по следующей ссылке.
Загрузить файл в Amazon S3 через asp.net
Надеюсь, вышеупомянутая ссылка поможет.
Вы могли использовать оператор ReDim
, но это действительно не лучший вариант. Если ваш массив будет часто менять размеры, особенно , поскольку это звучит так, будто вы просто добавляете, вам, вероятно, следует использовать общий List (Of T)
или аналогичный тип коллекции.
] Вы можете использовать его так же, как и массив, с добавлением того, что добавить элемент в конец так же просто, как MyList.Add (item)
Чтобы использовать общий список, добавьте Imports System .Collections.Generics
в начало файла. Затем вы должны объявить новый целочисленный список вроде этого:
Dim MyList As New List(Of Integer)()
или список строк вроде этого:
Dim MyList As New List(Of String)()
Вы должны уловить идею.
Предлагаемому ReDim требуется ключевое слово Preserve для этого сценария.
ReDim Preserve MyArray(n)
Как говорит Джоэл, используйте список.
Dim MyList As New List(Of String)
Не забудьте изменить Of String на Of, какой бы тип данных вы ни использовали.
Используйте команду ReDim, чтобы указать новый размер.
ReDim MyArray(MyArray.Length + 1)
Я бы предпочел некоторый тип класса коллекции, но если вы ХОТИТЕ использовать массив сделайте это так:
Dim arr() As Integer
Dim cnt As Integer = 0
Dim ix As Integer
For ix = 1 To 1000
cnt = cnt + 1
ReDim arr(cnt)
arr(cnt - 1) = ix
Next