3

シンプルなテキストファイルをGoogleドキュメントの特定のフォルダにアップロードしようとしていますが、うまくいきません。

FileStream fileStream = new FileStream(@"c:\test.txt", System.IO.FileMode.Open);
DocumentEntry lastUploadEntry = 
    globalData.service.UploadDocument("c:\\test.txt", null);                                                                               

string feed =
    "https://docs.google.com/feeds/upload/create-session/default/private/full/folder%folder:0B2dzFB6YvN-kYTRlNmNhYjEtMTVmNC00ZThkLThiMjQtMzFhZmMzOGE2ZWU1/contents/";

var result = 
    globalData.service.Insert(new Uri(feed), fileStream, "application/pdf", "test");

エラーが発生します

「リモートサーバーがエラーを返しました:(503)サーバーが利用できません。」

宛先フォルダーのURIが間違っているのではないかと疑っていますが、正しいフォルダーがわかりません。

4

3 に答える 3

2

https://developers.google.com/google-apps/documents-list/#uploading_a_new_document_or_file_with_both_metadata_and_contentに、再開可能なアップロードコンポーネントを使用する完全なサンプルがあります。

using System;
using Google.GData.Client;
using Google.GData.Client.ResumableUpload;
using Google.GData.Documents;

namespace MyDocumentsListIntegration
{
  class Program
  {
    static void Main(string[] args)
    {
      DocumentsService service = new DocumentsService("MyDocumentsListIntegration-v1");

      // TODO: Instantiate an Authenticator object according to your authentication
      // mechanism (e.g. OAuth2Authenticator).
      // Authenticator authenticator =  ...

      // Instantiate a DocumentEntry object to be inserted.
      DocumentEntry entry = new DocumentEntry();

      // Set the document title
      entry.Title.Text = "Legal Contract";

      // Set the media source
      entry.MediaSource = new MediaFileSource("c:\\contract.txt", "text/plain");

      // Define the resumable upload link
      Uri createUploadUrl = new Uri("https://docs.google.com/feeds/upload/create-session/default/private/full");
      AtomLink link = new AtomLink(createUploadUrl.AbsoluteUri);
      link.Rel = ResumableUploader.CreateMediaRelation;
      entry.Links.Add(link);

      // Set the service to be used to parse the returned entry
      entry.Service = service;

      // Instantiate the ResumableUploader component.
      ResumableUploader uploader = new ResumableUploader();

      // Set the handlers for the completion and progress events
      uploader.AsyncOperationCompleted += new AsyncOperationCompletedEventHandler(OnDone);
      uploader.AsyncOperationProgress += new AsyncOperationProgressEventHandler(OnProgress);

      // Start the upload process
      uploader.InsertAsync(authenticator, entry, new object());
    }

    static void OnDone(object sender, AsyncOperationCompletedEventArgs e) {
        DocumentEntry entry = e.Entry as DocumentEntry;
    }

    static void OnProgress(object sender, AsyncOperationProgressEventArgs e) {
        int percentage = e.ProgressPercentage;
    }
  }
}
于 2012-04-18T20:28:42.260 に答える
1

記事「 GoogleAppsPlatformドキュメントのアップロード」 に従ってください。GoogleDocumentsListAPIバージョン3.0
もチェックしてください。Uriは次のようになります。

string feed = @"https://developers.google.com/google-apps/documents-list/#getting_a_resource_entry_again"; 
//it may not be exact, just check and read from the links 
于 2012-04-18T19:21:50.540 に答える
1

このURIを試してください:

"https://docs.google.com/feeds/default/private/full/folder%3A" + fRid + "/contents" 

// fRidはフォルダのリソースIDです..あなたの場合:0B2dzFB6YvN-kYTRlNmNhYjEtMTVmNC00ZThkLThiMjQtMzFhZmMzOGE2ZWU1

また、フォルダリソースIDを--folder:resourceIDとして使用しているため、URIでこのエラーが発生していると思います。

フォルダを削除してみてください:そしてRIDのみを使用してください

「フォルダ」を切り取るコード:-

int ridIndex = dRid.IndexOf(":");
Rid = Rid.Substring(ridIndex + 1);
于 2012-04-21T06:00:50.827 に答える